From 0a2d1334366b18ef59575874137a3c6f5f0e050c Mon Sep 17 00:00:00 2001 From: robin-stefani Date: Thu, 14 May 2026 13:01:10 -0400 Subject: [PATCH 1/3] Updated Customer Portal page and images (#906) * Updated Customer Portal page and images * fix(vale): auto-fix style issues (Vale + Dale) * Update password instructions and sign-in details Clarified password requirements and updated sign-in instructions. * fix(vale): auto-fix style issues (Vale + Dale) * Clarify password requirements and sign-in instructions Revised password requirements for clarity and improved instructions for account verification. * Update index.md * fix(vale): auto-fix style issues (Vale + Dale) * Clarify password requirements in registration section * Revise password requirements and verification steps Updated password requirements and rephrased account verification instructions for clarity. * Update password requirements and add confirmation field Revised password instructions for clarity and added 'Confirm Password' field. --------- Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> --- docs/customer/portal/index.md | 31 +++++++++++-------- static/images/customer-portal/activation.png | Bin 50220 -> 88072 bytes static/images/customer-portal/home.png | Bin 189686 -> 236245 bytes static/images/customer-portal/sign-up.png | Bin 24900 -> 33617 bytes static/images/customer-portal/thank-you.png | Bin 28476 -> 33810 bytes static/images/customer-portal/website.png | Bin 184222 -> 194242 bytes 6 files changed, 18 insertions(+), 13 deletions(-) diff --git a/docs/customer/portal/index.md b/docs/customer/portal/index.md index cb4bc67c5c..e804196853 100644 --- a/docs/customer/portal/index.md +++ b/docs/customer/portal/index.md @@ -8,9 +8,9 @@ description: "Register for a Netwrix Customer Portal account, access downloads, import { Company } from '@site/src/training/products'; -Follow the steps to register for a Customer Portal account. +To register for a Customer Portal account, complete the following steps: - 1. Navigate to the [Netwrix website](https://www.netwrix.com/) + 1. Navigate to the [Netwrix website](https://www.netwrix.com/). ![Netwrix Website](@site/static/images/customer-portal/website.png) @@ -23,15 +23,22 @@ Follow the steps to register for a Customer Portal account. * First Name – Enter your first name * Last Name – Enter your last name * Business Email – Enter your corporate email address - * This needs to be the same email address known to . + * This should be an email address that already has on file. * Direct Phone – Enter your corporate phone number - + * Password – Enter a password that meets the following requirements: + * At least 15 characters + * At least one number + * At least one uppercase letter + * At least one lowercase letter + * At least one special character + * Confirm Password – Renter the password 4. Check the **I'm not a robot** box. 5. Read the [Netwrix Privacy Policy](https://www.netwrix.com/en/legal/privacy-policy) and then accept it by checking the box. 6. Click **Sign Up**. ![Thank You for Signing Up Message](@site/static/images/customer-portal/thank-you.png) -7. After registering, you will receive an email to activate your account. If you do not receive this email, click the **Resend Activation** link in the browser. + +7. After registering, you will receive an email to activate your account. If you don't receive this email, click the **Resend Activation** link in the browser. :::danger[Warning] @@ -41,22 +48,20 @@ Follow the steps to register for a Customer Portal account. ![Activation Email](@site/static/images/customer-portal/activation.png) -8. Click **Verify Your Account** link in the email. +8. Open the email and click the **Verify Your Account** link. ![Customer Portal Home Page](@site/static/images/customer-portal/home.png) - 9. Your account will be activated and you will be redirected to the Ready to use page. Click the **Netwrix products** link to open the portal's Home page. You can return to the main website by clicking the logo in the upper left corner. - -10. The activation email included a temporary password. To change your password, go to My Profile and click **Change Password**. + 9. The portal activates your account and redirects you to the Ready to use page. Click the **Sign In** link and enter the email address and password you provided during sign-up to access the Customer Portal. -From the website, you can access the Customer Portal through the drop-down menu from the user icon. +From the Customer Portal, you can return to the main website by clicking the logo in the upper-left corner. Then you can access the Customer Portal through the user icon. ## Troubleshooting Issues in the Customer Portal If you have any trouble with the Customer Portal, try the following: -* Ensure you verified your email by clicking the Verify Your Account link in the email you were sent when you registered for the account -* Confirm the corporate email address you used to register for a portal account is known to by contacting your Account Manager +* Ensure you verified your email by clicking the Verify Your Account link in the email you received when you registered for the account +* Contact your Account Manager to confirm has the corporate email address you used to register on file * Clear your browser cache -If you continue to have issues with any aspect of the Customer Portal, email us at [customer.portal@netwrix.com](mailto:customer.portal@netwrix.com) for assistance. +If you continue to have issues with the Customer Portal, email [customer.portal@netwrix.com](mailto:customer.portal@netwrix.com) for assistance. diff --git a/static/images/customer-portal/activation.png b/static/images/customer-portal/activation.png index 17c2d38189baed9dca1bb826312e33c2d64ecbdc..0fb1c5cae8426fcd40ccb8f306aca81c55e80b18 100644 GIT binary patch literal 88072 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

lY#vC}>wJdwSLb1*a%=vFk<-IiFo~(>ic|yx_Sb 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 literal 50220 zcmcG$guf!2sXpz_^Dg=e^i zaChOyomaBDP6z~c>-B#qF-+JG;7N36IVCCd6$~6Kwwpn7RRstHB|=W}iH3XP`m~>c z($N)Sd$dr$Dy1rgFK8{c=sZ~U<#hbUXN-iG6gDL7x4HI{f^;!We7YifdG&+)aNZ?Y znWf1Ry*7FLA=o}OL7iw=bK0x!$Q9}L(6DNfg|EZbON8R0Uu4N=MyyBRXlm4F_Q-?c zvwH50x406wAHD4hUA`E;FAl%qN-S@oJhk}W)6Q>Fxvmf6N(lbwBf0*0`%%*K<*@(G z`J~M5EdAd>S$bkY>i-UA;NMNU_um-c`-qjr~h0ZKlx? zg{o4Uw~0aU(&Rz6ZLi8iK4bgns<`az(Y*aO`yQR>nvTK#ekU^RiEa{`*cQXTE5G** zoGRaUT4l>k?Ju{dzvsc}Wa_wTM#3)?A|69D_MY9{GPhIt24_W_v#R~bMH|(=AU(|1 z8(f*3s@{>!VIH8hSo9hBb!TWwyomYa$G|MVMsJ@ku0va}GG|fxJvuHq)<|QR<^GVw zr}p-^K<>Dxnc?kd&Y@{Fh62HOw`We_`*+_zqb1OKU0t*Bq3#tYQvNpUQx{?30lm}` zc}hEqH*P_(yu7;}Rx2w()2A1!M)J1rRCQ>(#J=qIen<+Eg6GG*r+W=HQ+0e}RCRvJ z3G88{W>=a-yS<^lf!mh7XC!K@G%@qiW zH(+(Jw$95hj*_MIvr~egP!hk)XWH&i9KWZ3{){k7x^VHvLkw^7x9y>ozL5;5*4q(( zi~P)(q!P{40#4SZ>(a4#;%x}+=Fhfjs=8AjINC&zfA?)4w+wJ_e?D7eFK^QD>+M5d z&ySQ-;YE#a++r~i2z6!YOHVep3Z8-UL@GoFP32ntaIMYv?`ppd_dE#vJf|8c#-=qf z!~`O7#52_;@0W%M{9S9PW%`Gl3ZG74lP4pNO!|?5BZSBDaGLw|DKCmu^POn>{sYF(&8EkLp~&3dfQr zNJrLE-A+YDh4?lm6^JAy_p@ZuY|bLDM$z=RMsvigqK}Vol2CFQAMko*zcVY+^RQK) z(qJrA{ZztPi<-k#Ddm0{q`4OnJTGG>d-v=SyVrsZ7OpW~%zfYB1IL7chI32Y?%wV= z){JKw3JX)wrU=rg$8&pwWgkXr@;7dhv*9Do$Eb}9dkhaS?1prG=U7ox-R!LWMl;)2g)5nFq<9?Hmt~NW1o_4KFVk`S$EeL08 zFeZF;CZ|->cdZ$5RrIq~8M%%4mYaL0z^fMbZJ${8x{A4#;f&~*kJXu<$T!9yNvg*& z@^~Q`YMy+AM=G~roR<%HUvp}|MuyBOkG1mN#LX-kSG_@S)g5X3K~K=?F`GzKXB~Z- zVAfjaz$GE~?(ZD%$n&P((!)MQ069(7DHhlndiY*Q&fNMZ>j0EoBTD zjA&iof=Jf@pY(Jbnye!86Spzknf9)Isz-eW7j!3O-zy|_qMde4r6X|#ZJD`uJxC1f zS&dDbO+CuTHx*edD%<4JUYqA{5ayNyCnPpE(5Ka$Dt+y8tK0%dX@{ z1(l)VG7cP$=-Ri!|IOuk*vqEemijP4_BH;qV*nex&&kb__x1d3!-Ipw^4dM&OfJct zo7p@E4P13jGU2-0Uy*@SZ$A~ivFIJq`CRRHWy27pBfBrxduggwCDq&E_hDBgisWuv zNri{J*+qLM>)l(_G!>U8tEctT(A@cJ^p=joFFA?$m8rnzt_P4cenJB))#*%v7Hk!Ypp*sSkB^^l&CyS+soS+d4<$ zz#qrY-4d+vg-${XJk7j5M|<48Wik}|W+`-cq?VnSHPVlfHWw4d@x7XKIPYuV6F9t^ zyt_0>M1RAIJWUPrS&GB%I%2{2+}?Xqqi3*kK7UwN%a7AL+FaTRTg)a{4`QOYRNth- zr9cIp<}qgS7W!P%O|qfN`&X}m&3Q;nM$L!wH?}_q>V1}U9Cq{bF;c9v7F0P_7U?c; zF)XrWTEo2c)CEs;l7(L3P;t<5w_{LJtMx%@AzPW?B>vCqDGBp2Ed9(C4usKj^M##nxC?9$Cp-XjWe(iczg;GQZVgHOiUR-3t_2XXEya;J@TaOQ$;u!&PQr;|* zky&X~)WN6g@XMDi387U--!>L+{oD8L9k3LZ-PO_W@vS%1gdF*k5JbiQcLg7YH%fu$ zDcR^7b7=laN2gylIM%WU5KTTW6tAzbu{O?)P^qNw=Vnpxd3Vog}A%$&u2Eg9J4ld>w>@eNkS#l&+Qf zw;QM7H#*+R+4`S{6^xwKXVh~EBS^!3uP(LBa#{b17M<;ck(qKS*!-0ON^2Q#jQxhg{8EA(85(_6QyQ4oFEx9ZTg zKPy|$ywxEUGHYfm!u|3jVSsghadFYSjqSytIIftRt&PY@U6yiw~+e$vb-#RdKEcv+asYN;BxRjzdjOFHOn35Gy zatiS)9?#QV4K;d)Qdi0N7x;vZH+mx!Tqj~-a(^2xiTK2|DWy)u45l3$-9y*M;RwZO zrgqXM_Zk@H0nci~{hka{_Da@Zd6kIAKgG{FT75%+EUDRfry{+8$rJa7RrhY>)AKO6Ck1tj1 zZ+|>zmQ`~Jyw^~V`HVKHLZU%ND_5gK-goB(JF!U>0Ygm3?lc7e-HS*+*D1@Fdme>B zcu6079rFdwIi40$3$qPKHQ;>KnJf}LpT36aNqza`s^}ljL4-}wX=>D;ne0o=IGj07Gh-($^8U z{8bTU1C(pfv~y+H3GJ(|6ngStqoK!d^NR?}^FxaVCJ~z2lB4GkH_1_(vg?@KmF)frkvznU5)%@%a+cV!ka?+Sxv6v z@R?5yE^9QBU!C|-`64gZ7b=XAUrHGoalN1>GUWApl9N}gec<+`rJXAyXYx7@rDCtu##*=1U)dj5|GH5c5hV2b^n>@!$^M~~&?~7vz&vf% z`V_C=Dp~!8(sSf%D_Lk7MnL0n->I^FowMmlKZ4VvmB#2z`3fomc@!)(Z&`5k1u?~( zHdxBOmO=0wW3r*bHCJF__20u(5@mR&qcp_kj~0!apIJ0abpx zmbR-hFgkwkvjfpmo8qVyDGma`$>jcsEF&buT8Yp+V;=3e+b+rdy@Um_<*mij_@Fdt z1m~ciApW;y>C&Qw+k^ZDh$ELt?k%^BGNkS%c2lTm#>|f59i!!0^Y@-*=Lm7t!2_}h zc|qsXym--c`W`*PKid|U7dQ={~V#^IdqE6UyM&T7mhqKE^mb|TZ-7|=ICTgyU zo4t})nTaKC!Xgb5=Qn?D{|yQV9d#E&_&N&S6I#lCo$-fnCUliA2*BgP>&rV+bXi491^d1BYhs4w5Ml^Y`6etFO2TbK{hlJ7-eA%(y|@XY6Br zZ`7YsP~5Zm-th8$6eR9&B@+~tETomAxWu|IzkUl zGW1#xPfyR<8bQHYr8^266Xmb%=XVA9S;f5^@bJZ7mCJ6NVRV|vPD;)zZ{`h!`#7M_ zeN$zzOCU`NM-s1&kfJBB8$Rry(9n#D(W}O)aIeI2`I2xGS%A^hDsoKCzl~I|??ff5 zFjFS0`Gb5!Co{r)u^8N*7>+4@a9lukJJql7cX06Qt+2I_#EQ1=Gn|LZ-dV!a7hL9J zeNWI+bO^bvEh1IXnVF5|@E69pDRY_9P}}SWI6M7ENWTtPW{GckGgsu!(iqG3{@Hz- z8t^@>fcr7Ww|LG+{#a8(_)~T>wkz>b1_)k`)$gH&&u`r<=PQ~+EqQ|)&n9R*_3QMB zHzS`m?q<`!nOobtCb^7TzjxE0>__gOZ|U#|2qR)sv?uA-Y$nl0xJmt!CP?Lf{V?bk zK|zq^tlQO$qwMHc*{iU0gu%aX)aSQ;KAiX?vo>&2r0+AKK^a4h@K4lC{+Q1_Dkrc~ zv!=U>FKp9|EL0{v6AmAd9v@Rfd5dF%sO4m$swh9|7e_`3nAud+O%@qyh5v)e)T9325@<`Pc@}#Ayl3IxhdN& zcHR{l@ii#Obw)IP%ewWgqAF2-*i1fFo8CSeg&6m$6Xo~w=g<3S)E{&(qobLiAwEsl zsLN+byzm`HfA;WuW!j-y%)`6;W|}+)2)g3bO<153qVBb+i&UqGLq7b=o2gtR3 zaUN4q-2+jO`)`?>%^;0b0YWny@C+VuDA;SSb1@$W#yRU z!&Jhzce4?Q@tl^}oMj|`dpTF#y>C9=TF&}iyvQ|0z|Gp3!2m^eAUQt|++&q4mx zAJ#25Ue`>A#;AW(1Q>|tloxDcD||I1IBkuy=;B(gbTW%OHGzczb?sSU=Z{l2=@3fV zSNu#)`u3Pg+W+tY;Nmel$RneHDs?_Jv zNp#mr2+8A>@XO0AL^3n)tLlkeqUnDMWM8;3N@iZP+_Sg#RI5&qK4!(6ik-m9Q1kEc zjUdg=Obx(_PEPxrH$A?i?{D@BU68JDF5DVlrNXQ zcD+VwzV@SS-%Dn80;yLfK4KD(Eo`GqO^ehM!Og&%&1Iwq?h}O)bRW62D)~-cjUQ_JLZjRCJ0K|MC?TT09*h z(A=kdy-DTQUW3H+>!Di`Icr1oYMYiuOZMK1a`a~R!0K?jzoYVCtpLlZXNehMKUSdA zcjck8gldGat6`DK~8U6KMb+St{n=FYZ_EytE@=ap?kiveGh4w?VKNJcJXvg82 zUJQIJl+J=T8Pl{k7pqQA>KS>~MS24^^Q)~DGSLYul3bNKW*fi(ZQ^71zeTxFv$s3;RxGPgoEfek%OP@Z#1JL`lgv z#P(k3&`}lxH7DmY>i5_)FAEu>h%CiewX2Gz9w9zl4Un*%6znL68M zpoa%hKRsf_F)XoKbBna$yQqFTtg_Djx0Awms+!kvBa7my>g5|W|B$mcS3V*E7>I9T zmLn>puelJa(?s4Rzir7fUT|8Dj1u!vzcp%G*}pqitpB;e>hfko590f`FV$0}PEqOg z4a&EAQd%|@0w(IGCtvObA*iWeE{d#OWT;@7*%|ztv8`BA}KGoLsLoZLz<3{l8+J7afK(HJn=j;57fC({6&m> zhS*fc)?S`-EoIpslDiLy&F#rKV+>6#(ro_OUCcn$arm%Fn`=~rLs$OwiJ9VuaIV)WDVHO`~ z&_*3FQ`Zbqv@{dn-bKhi_m7JO`7iJ@<zt^W;AN+IR>v1i)% zM!;l+Ag4X_ik4UVw&_tYS!(Yg(nLH*dnhk)`SHwouo;T;2aQ*YaXIs(+I)IyFSL7Y z2|J1SNphWhqyo}&X@~shhrbHNREcRJnocc0AL4J0_nk}jj2|#NAl^3}L_XZYI#I(H zR_W2NZJNf;coXGSnKcvr=HF*KOub%8yI-`I&Fgf3sVr~TsMs4>R5f`kQv(Q7YgKHvo=pQFHo zJ%L_Ab%VglpZT+bi@3y2!D2qH%wjBz%vcCSBAN-O#LY)D(s3X8Y4PmN3Bt(hA`Uo*J9w8M=i`fs z!t5G0%yJU@kvMR8l)%%S$vN-eXc(mTCNQ}aJXPZPXT z$QbjEvM@=CUOciHh)Urjgn7cY-L=_p&+v4pdu3`lHpj4;nsfd%j|{KcZflPl@x93q z{bbO*EjCMrMa6+-S#i06a*OqS55W}+y2G|bTdbo%CSnkcd$iMIMJ5B`8}Lj>@Grw9 z*Le%4`m=}(`@_R*1p5*#k)X^?may*GI`jUS5mF>k>DrQNML+Yz$4D*g04ML!c?*Qk zi&qJ9F29TZ{+i3+T5L-W#};~^M9@6*h2)Xme1n=Dz4JMtSC0Vq3A0aky;Ne?GEbhe z4LUNIEa9n)s|r0!h$JTmhn2Op=j(yd->o;cNF{H(=&FQu^nLsHv{H!FWm+@C{^9u! zALac!ThqV)g)%s6M+7);l;4q+dNb)Eh5D_o+<>gsqA`GVSoM`qu`FdKr!IMq#s(M8 z@60s4d#YB`+z*-`WT~~X&F`eBF1Lt$@e#78id2+$bFr`%`{bCL!yPetQfjYoD#<`q zHCZS)vXq&-PJ%T_%F5<0v-H4fpr{8X7-(nQ#%)fjp9D zuk5Dfq$DB}s+xb^PNQ}wZD^xD!_HmHZ z8)?SD&cN}cI#h%>Rg7@14^^BSC+A`XRaE8G7ug z$Pl{M&!VbxYidr4vA(sNmZheqhLnbca2#Iu-T$9P`{FEn%dP+Q>!%U_KlJdgFa7`F zmVp0vmy6oONz&K5e$ulo4y3n9r#ORU`vQddf&ysHPEp0|RLqj40y9 z#rMC8b$~VlaI~}HF6BByW)alxHJ>+OUM@FjI z*%d0%dBu3o+&DYjFyV}+S4mzU&{EI+o|U!OpDyEAQ~#cEB;0&Bw=gHGCi5RLRA~B{MUVO(cupQZ$Y~Q(YIPOj~<2J<~L? zgWu)UIf8I!F{hv)ac^Zx!09O?6O$K}pW#!B5XphQzUQW3wd=p>?U#KdA$8M1fTxcTXg4h?~<6u?)>U-zDkOy zPmC=W7Z+K@$!;fGUHXW__pYw4va&K|yzk$?N5{k@3A(I~m72iNikI}|VcB9?^jVGS zk4ZZuZeOryXlU3@*YZ$N&F!xYk`hs6szaBk4(1H&0q<13N7QX=CMKpT_}h9oFDxwV zkf;dmHY+PD@6BjiTiet3*oHNZQX<{m34Hi?cyA?APbF#$lB1(Fw6wBT^YU|Y`o^|{ zE?MLF@j^77J;SGycOMv$ve9S5t(WC} zh>IG;KUpIX>@?*p)lp1Ut*x@f2%;hkt;^p!nQxCWVAVd_SI^!5Md5dTx>hVj)!!K- zOBcmwKlLR#nt+_VNWrtlpz%e^JD;;dSV!OEzwcoh8&gwXC@OZn!+J22gFXF#&z>3P z!Fg?Tusw>NLd27sgQNdC1j~3hIUQeJKT0YqZy`A273*Ot*WbxsCEW>XhM`(mSR8H5 z`u+a&=;qCvvpz@D4PHmJ(IJvlCx72l2;%hd=;-NP9wD#bh+CbOA#4~Jnyzzm+n89` z*k~|q|2$dcki!33B3DDy`?#dO{vo2s7?~U!d$^LF;(NaH3we2JBPS;ZOI2i8Cmlw7 zkDT0hsfR2);tzDDU~vly3f|*T+C4d6UbcMtw1w400@+GiR8X+~p2FAt;zF04oE-6LZ?T)aLrh@74Pj|%DSLTw zM9wHdc8^air$B>jc{FTcVR-UKs@v8KGh1=;Z)3mdT9>43RmPZugM;a@*@BOXbbLHK z4IPxY@rtouzn=d2fd*M)WVE@oWMOOT4fpf;^Jfw+^ZnIfOau*Hd+xJrJUl!M42<=S z4Hg!bwY9b0Bq6uOuK3#8T2Y@-p(#HgrrRR-`^Y4O^FFp0>8-TUg?97IGKY(|R~ zmX@O0=YK^|EG;a=fBi}>{QRz9&5?UOLXuZS5fKp;6&0Q$!zLZ@F87Iu65`{3 z{`?868rN=WRQ)Qos7RSAvi0ZBBoVKXfq{XZo{wYia{4h4=Oob@c&wCS+{_f^BYY4(_A% zW}#FqTXYI4?=F6%PT7|=Gg|X(XOtr>ZOXz%!R{^Nhv8QypUEv+%*ARb#|*m0rAfguultHmDiMR!ISoTU#rLiHVtp4YPRb z)-Cm1ZaO;iwlI=^zascJIm=2*U%R-Faa*dwkl^O9u&`WmtrZj$)YSTi^R+|XiFxh= z`~2?fQ>BW;MVB%*zFw>Q_wN&6WEK=CGRDj_`b>6pDN^F%Dj@vFsumU&0MXU1z792p zBeu8ywg5r_uAcKDpiSmy?ro*;z25o0pHz zf}I%dn;fzcXk%}8S6D;@7;|cRdd0amJiHr%6w%b$IuCP4;d`7K6chyM75;z^UZz5=gadUEdhFpIr=IcFH z@}j4w2SG`I@o#Pp5`fEn`+0b%+>$n+K!JNj{P?=F#)3$b>D6p8j7wyl&AT;Hd?%Q;*Exe2AptknxmC#%=q)= z4$SLK)PRr>IbB_n*F4Z_XJuq$WMzFf!j#e2*eH=&?Rk**{=JNf0lVMjf(7B49T(TL znasopF^u)Y^Wl51%R@riuXr6Ey(}5+otpC26K~?aLO40?CI7zqnaah{SVP}I_o;pU z-Me>j3B_o7Pc4EZ{;sWcE;!oR*@*}X4?SJV%gcjUT%WAk8Y$ElCTDx}=*P^=%Zi6;2cm9kZ*fOM`B)wwvv*P zT3REK)H0@=zhJ)D9&`wzJ^z`&u&o!2KMP8?C(Clhz5}&h^3yz3D zx^7GWbH2y%<5iv=896Mhn$i1isRl$!F5*e>@L|2fY-4kCb7vgeuV23szJ9H(tBaD& zV9~EU-yc-5va+IAPAn-Y+1}s3i-jfPxo_$1eGW*qySs}`CTRNN1&8CjEO3umXDl1? zoRf`hYofxYy}ccn0>(>#Aw>-=n3Cdq`k0xy;M=!903v?pJ2Fq61QZu4SgHWn|Fcg_v4dk-#uw zV$4iTo*BW;(&Wv}&7$n=DiAe*q5UiSPD?!t^YhhpbyX>0!jB)XfCK@M1unL>KxV&t`-`qpstP=*XeV9TngC=Pr}AZ0|SHLK3x@+h?c+Z?(W3I#J7W*Ti)Y% zd3qW(de;CcK@qrXo~Oaug+Mf%N7Onhzms{;t7uTLTBJ=WZe+G6>3#uVfWWmJ10 zI?gSBz#|wYP*uOte-D6B(8%(cs7){juw1}`4kjj1QBi|Hk2W@I>+80p;fr%~X&oDI z8$dGYG7*bA?$pv@?Ck8oMKBj+!tUE3LuA5;Q4n#ghMe5o(VYu{x3JWMdcwoQAr?H& zHmZP%V&u&n9e2MyfkUJ;ah(9q!%Wv3aN1*jLAHQ2brx&@2>*>9C@#4w#zaNGAKZkjEu)@O+r-}aHy>vZFr;OO|oq*L-{4P%daYWr=5&8oUGRvATwGmlT|qJN@87?({T1rC&ZNXd zNV#YF`d$~OE~PrmgrN>o)i0p(UmGce8G~rVLCibWR8+W_n`hP3)SM=B@bN_i2Y&&2 zhkz!zE3Kr|9U*p^<9qKB9X*s_uFlRHEHqK=d4G0c@c@S|FE4>cpmOVsWjR}jGX@Ca z13`em4gCr60vPa(@k@SwJ|+%M3a{M+=w0OTTqs12N+Lfb5a33YG16D;>YOWFda~Zb z3D5`P1(XIir^os64zQ)@$$ZrB-?E(X=fm2@WPp(Xw}1*}r8?JT5R^VkUGXMXRvv33 zESf>aI_+4%z zUk7CZNvC=5W$AHi2tKH?ctMxE{CpdrQw4=i(8m1MLpdO`mzS4!cO8Qy`uqAyyiXjV zQek5&hBd6Iu6AGUONFFpRe1|^C#hdwUvJ*^wT3|Uf9tnYh-J<#E{+Hf zzlory&*rk|ft^Z+nm7I7o_>ZBf&K;Xhv2!``S;7$*VoL<3|_S`r6vR%*#RDSdW@nSWJ$O2fcm! zNj3vg-mum=7v@Mv$O}$s6>9G2_|Um7gM>=it2T@fxQkpd|=7nRC^4 z^KvLHC#I&>=jSs-T}y%BKpeoCB~?|UqoZtWY!uvsvB4KIlH*ZlEoADk=zUc~HTf9l_CSBLzMO zc$$an(@)nYThY!c=ztfT%+dWGj+Kkd>P{7G@j1|4rm*`;R4rY-={w0>a@fSf3!xzl zHGW;T1nKlXD9C5$CsFIToTaU8S9|-TsCEE&kRd47%p&T0UJab?cXbI93bg^yg$AQ$ zt_I%L67Zq9g@uryATJM(nW-rhRhrt`XD27Qr+>}i0;Zgk+D+Zvb~|%FXZ@}&;1f5O zdns4m+dt4r?bhc#K1hlHydzInnSkzqJ(=~sFRv9N0S&3s)H&mYZAJ>rymgCrgWNvI)by5qUt|9BooE;2DT_NCk0%fo|* zhetp_;LZ)y1DPMQfOb%EQTXilf43UcFzlC>mTvuI1M3SkkgK7mtGfbW;A}-qN?Kc8 z9UT`3Q1h#`75CBN??`H(Nh}0pDm@hv%Hp&%s=1!~K@v~G^brUmA|k4Qn3$OO`1sXE zD{5+LKE5g_WMyQ2!9ES8WMN&psP+X%Ow7>cW(jdu zS=7g~5X4l-jZD}u8gE3x_ z?j5QtWH~*+0VW|cv9NoI0qZQh7nC@&zGrrtZ+eP_8S^wj=Rt`cbk7=`NO8*G@Nn9% zg8($EtJV$J{ z#u?WD&!vuykBfNhw)XTWA5_vyM4g^`&SeG!1hkcqKoF-*CP-2V@blvaIJmg*aEQmt zKFw5zoP*U5p2QvI@;KdJNs|f%ThS7NLzO|}rpueLctNeQ3-^$ZxU)ApIy=E%lVpC> zmd+H@VOZztb9He90Srhh$?3A{^+l1+Z7327X1Lb_sN|RkK5&?{Icso$&3sU8kg5t9 zb+|SP7T$$}3=dEP&fU8j)4$We5Df7P7BxB0q?Y*@78(j(3n_wMP!O;Gm5WOSh-0u& z790h38j4`hd3haRXZ#zL)2!KQJY(H)k(Ih=B!tm{d2#M} zo-Dw~#zrH?7$6P2rTRQ(O{d!+?<7+`<%QGW$;BDXfBi~|{hm6iJ-E^1ZQp|&Kvu{C zTWjkHpk5e;iZd~qI3OB?x;$MJh-`Q?)Ym&YIfcBqBe}k|x#_zyKpQD58CFLr&5r*x z4UDzUjt-5a+W^WA$O~6xW$YOFgY9k0tIo>CM$r&SYg^mz5U0Gnm1SjAAAl5~ih%?# zej$eY^i1OEQy%HHo!IuRfJMI}Wu8yi` z>J*fI(vdhX&d$z0ld)J@_d576-e}T^b4BgxH=Mq7fsRc>KGyrPREznlY?5Nz*51C+ z>fcemmR|)IU7PR5gxW^h(y+0Qrsf6vN)@#TsbGXf#OQIhmy7EsZc$ESS*pmPkr51t zEmbIWCWpN=>huh}ActBNE%Mqe6_u2rnzymB@dA1Wv?GtG@;cgl`}Rg!oJI@qrxmvz zR8Qa)gQ+Frx;_T<2uccsoxY7H7EB~SBduNol-Z!B!f)WyDfSHxPFC1xYiiyv&B)2Q z_7zfm4&x=MR={%r&n#FdGDe8&vWLqK6L?sQy;y}`V=mc~3h2McXe4<0=51M3-R?=cfoXmIedCH4mZ7QlOad>U{o&(F^RU7eHn zg6~l~Iywdm1%tFBBO;RVma2L67qztH`*#hxsNADmT#-hA$ZL4k5q{Yk4DrI+Ed72UqBC_*t6r~heEE3ta129b+R;g+S=NhPDMrywLWLAkRx~@&i~r5 z5T8013|PUPXw-Y^9RrdSq~Hd~4X}EdvwN8R}1%N+y`s!%YkgDXCKPb-tadxLg#krAfu>Zj1IM5Az zNJa)d2jW+iAV*DTWGt=(mcz})6+o7D-W^XyUV4j);BcN z7;L_|i3!G|8+iDzy5-~RFtVt2Q+)g=$dvm`T4CV4!;l+14@d=_8R9xOz@d(6|6Wy9 zRZ^0ZpAQAkAaU)tVF*XC6RsT@=yic(wF}kh>E+qhaKgWZh5N+B*VPVmogjuj{G5B1 zt=zt_3w6kK`vVr;fEDCf4G4CI$BzYG&%K4(qpr?N=4VW7EWpqp7)?S#XHf4!S$Q3M z;G9D2LHh-)dGJm^l}!x{%x!JWUaoU+aDYYyzZkL*{trN|UPwhJJYMBsY-P0qW`btt zV*+_?rrc1tVH{%i=MZ>Qk(SVc0nk|3JGpb`&b8OU!@~lx!oaXRU3XLka)1&47766w zZaaOF;=ASfdFVwp0xCj<55Wulh(>m2S2wq%y%PvuO66Tzg;?D8P?32btPV?l1#HPR z#*m{K0LMXIUS1;}hfHuEN^CGS_K%KmZr`RP#0&hKYG>>yqltx$O;_Y!R8#~rIk?=P ze*NR};%seY1=J%-6BOQT#*GD{Z*-H?bHT2HWuV}-1={O`M|Zc&t5=XOhSjhB!dt?K&1M#Y&(u+yN zno}eJmKT_6P}_2oDlx`b4?TfCa7)WS$RMCsZca{h!&l(EKr$DKzB$q47ZR%a{+-#l zaSCpp^&v5!=kLNX{)#^x3H zcrb7}IU!*dn4inbvd)<}(9Wr?y%vTDcKa#*G%=%#z^AFIT}eWtAWd>L78e%6i8&;W zKFP@p4-fZToS}(3c5E$Xnd8$dvo+oL^ndRKaDK3;<=#-@rO+=f+3WXEYzFCfb!gLm zI-i{Usj95Z@qq8%Hx2u+)8bXFp3RJP1V>YjnuTPrlavzF@VdJ3n*u|_!yt$<(odZ; zQd9o|qk_YmS5!n7I|ZGR!9l0KZ%-heL2}bYT|nm**x>H1z#q>Q6L<^D%0A1=)pNn8 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 X`fz;H^*113EGz{X73q9Qqu2inB%5PU diff --git a/static/images/customer-portal/home.png b/static/images/customer-portal/home.png index f0212e8cf86bd3b6198e5238538166d714567353..7a86a9f66b6a7f76c648f278e4202f2a082f74a8 100644 GIT binary patch literal 236245 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≥zPXKAeW;NvPE4uQRR4hu{#GHBt)*upeAhU<2 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Ǣ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± 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 Z5-5LOeboIJEQe_;C!;J~CT0Bj{{XJef!+WB literal 189686 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 z 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 diff --git a/static/images/customer-portal/sign-up.png b/static/images/customer-portal/sign-up.png index a762f902b9731136f231d6c26fc3ff9cc54c7814..7972ba66256c7606c0ca82d888fd988662f01718 100644 GIT binary patch literal 33617 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�kpl{!X6NRVG=JMVP+iFZfZJDHxwojWAZ}Ax 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

1!VXADeE+Rj5?MQ&7O3Iy3= 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%0A{IuGsjhz|Gdz-1>64?H#2y?JS(jJ*T zzB)nLL{W!G{X#;DZs~rg4=yxjp^mP*_MO#A@{sBL%W{5_2ydZ}(~4j>s*%MyyxS2SL@w4+1{*i};N375=n&qxaKJ&>?JrZbwmu>G*ce@Bot*J(d5{8atY8c>iKHC0kTuVRgDDh_ ziZ=eR>Ro2Ec;AT8h{UZM7PkaBcjt^<$h+TOlymJkLdPb85+QS9O>z{ zptA9XI%pX-gkLZ*Y_>u8*VLj3>xDIHm`bKqnnCJCSkiC<;?v$EYRmhP^O*M7L9o76 z0L0DPore&krE-JW_^VwvL(XTBasZo0_t@+ApMC~+hsRCUs7w3)AQmbLwL8x2ndPo^ zX-U^p&_@K%6zRWzW2f;&b0DDS$idLRO(gGtN(rL1xaragPt4H2@9x2Q;7{_NXisTnzwv^w z?(jFn%XaE?kx(Fb!lD=HBD-EAb^qyPyOE)pk)w6r5FErJ=FI+*Mao{<7Zunqed69! z{*k)*;=sE^pn0)7{J&~B!t`R{eN}19w~OmkGKv%jayE9>C~_8PA{6t^W#+fWgZpNO ze@G?<%Zkbdw?$jVkn$D>v6Ti*GFa10#rKB#5-WDd>Kf z9)S5`KG7)}Hq|?q$_<+>>KhQe-pl4Q0}74q{~s`{UuXo diff --git a/static/images/customer-portal/thank-you.png b/static/images/customer-portal/thank-you.png index c130be4dd5f3d0041f7f8de2f830b41fe62e53fd..cc6795aa661a26729d09856dc19633769efddd00 100644 GIT binary patch literal 33810 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 Cmsa=y literal 28476 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 diff --git a/static/images/customer-portal/website.png b/static/images/customer-portal/website.png index efa45f5c9612b6613661e4f6cc3d25417c14ee0b..92eeca82fd4b9f2ea051dbd0d44d22c894aa26ae 100644 GIT binary patch literal 194242 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 ID!mE&f4Fo5vH$=8 literal 184222 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 z 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�$d9q!f9i>;ev}Wg`r3vG@q> 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 JE8m!W{y$l$PN)C? From f9493468b50310d9f52a94a5c350bfc4530c1df5 Mon Sep 17 00:00:00 2001 From: Dan Piazza <220388267+DanPiazza-Netwrix@users.noreply.github.com> Date: Thu, 14 May 2026 13:14:22 -0400 Subject: [PATCH 2/3] revert(changetracker): restore original OpenAPI spec and remove dedup script Restores the Change Tracker Hub OpenAPI spec to Jean Perez's original (pre-deduplication) version, which exposes both GET and POST on every endpoint as generated by Swashbuckle. Removes the dedup script and all references to it in package.json lifecycle hooks. Generated with AI Co-Authored-By: Claude Code --- package.json | 8 +- scripts/deduplicate-openapi-methods.mjs | 162 - static/openapi/changetracker-hub-8.1.yaml | 24563 +++++++++++++------- 3 files changed, 15936 insertions(+), 8797 deletions(-) delete mode 100644 scripts/deduplicate-openapi-methods.mjs diff --git a/package.json b/package.json index dd7826d5b2..ad7f9b2d32 100644 --- a/package.json +++ b/package.json @@ -5,14 +5,14 @@ "main": "docusaurus.config.js", "scripts": { "docusaurus": "npx docusaurus", - "prestart": "node scripts/copy-kb-to-versions.mjs && node scripts/deduplicate-openapi-methods.mjs && npx docusaurus gen-api-docs changetracker-hub", + "prestart": "node scripts/copy-kb-to-versions.mjs && npx docusaurus gen-api-docs changetracker-hub", "start": "cross-env NODE_OPTIONS=--max-old-space-size=16384 CHOKIDAR_USEPOLLING=false npx docusaurus start --port=4500 --no-open", "start-chok": "cross-env NODE_OPTIONS=--max-old-space-size=16384 CHOKIDAR_USEPOLLING=true npx docusaurus start --port=4500 --no-open", - "prebuild": "node scripts/copy-kb-to-versions.mjs && node scripts/deduplicate-openapi-methods.mjs && npx docusaurus gen-api-docs changetracker-hub", + "prebuild": "node scripts/copy-kb-to-versions.mjs && npx docusaurus gen-api-docs changetracker-hub", "build": "cross-env NODE_OPTIONS=--max-old-space-size=16384 npx docusaurus build", - "preci": "node scripts/copy-kb-to-versions.mjs && node scripts/deduplicate-openapi-methods.mjs && npx docusaurus gen-api-docs changetracker-hub", + "preci": "node scripts/copy-kb-to-versions.mjs && npx docusaurus gen-api-docs changetracker-hub", "ci": "npx docusaurus build", - "openapi:sync": "node scripts/deduplicate-openapi-methods.mjs && npx docusaurus clean-api-docs changetracker-hub && npx docusaurus gen-api-docs changetracker-hub && git checkout -- docs/changetracker/8.1/api/reference/_category_.json", + "openapi:sync": "npx docusaurus clean-api-docs changetracker-hub && npx docusaurus gen-api-docs changetracker-hub && git checkout -- docs/changetracker/8.1/api/reference/_category_.json", "swizzle": "npx docusaurus swizzle", "clear": "npx docusaurus clear", "serve": "npx docusaurus serve --port 8080 --no-open", diff --git a/scripts/deduplicate-openapi-methods.mjs b/scripts/deduplicate-openapi-methods.mjs deleted file mode 100644 index bd8a0e215c..0000000000 --- a/scripts/deduplicate-openapi-methods.mjs +++ /dev/null @@ -1,162 +0,0 @@ -/** - * deduplicate-openapi-methods.mjs - * - * Change Tracker Hub's OpenAPI spec (auto-generated by ASP.NET Swashbuckle) - * exposes both GET and POST on virtually every endpoint. This script removes - * the method that doesn't match REST semantics for each endpoint, cutting the - * generated API reference roughly in half. - * - * Conservative rules — when in doubt, keep both: - * 1. Operation summary is the primary signal (wins over path heuristics). - * 2. Path-segment keywords are a fallback when the summary is ambiguous/empty. - * 3. A fixed set of genuinely dual-method endpoints always keep both. - * - * Idempotent: if no duplicate methods are found, the YAML file is not rewritten. - * - * Usage: - * node scripts/deduplicate-openapi-methods.mjs - */ - -import { readFileSync, writeFileSync } from 'fs'; -import { load, dump } from 'js-yaml'; -import { fileURLToPath } from 'url'; -import path from 'path'; - -const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); -const YAML_PATH = path.join(ROOT, 'static', 'openapi', 'changetracker-hub-8.1.yaml'); - -// ── Endpoints where GET and POST do genuinely different things ────────────── -const KEEP_BOTH = new Set([ - '/commandParser/whitelist', // GET=retrieve list, POST=add to list - '/commandParser/commandComponent/templates', // GET=retrieve, POST=set - '/auth/{provider}', // GET=OAuth redirect, POST=credential auth - '/auth', - '/access-token', // empty summary — intent unclear - '/cloudTemplate/status', // ambiguous "Provides/Gets" summary - '/policyTemplate/setup', // "Ensures" — could be read or write - '/reportExecute', // vague "Report Service" summary - '/reportRender', - '/reportRenderStart', - // Downloads: some clients POST to carry auth/filter in a body - '/downloadAgentUpdate/{VersionRequested}', - '/downloadAgentUpdate/{VersionRequested}/{UpdateType}', - '/downloadFileHash/{HostType}/{OperatingSystem}/{Variant}', - '/downloadFileHashById/{FileId}', - '/plannedChanges/download', - // Empty summary, no clear path signal - '/reports/ruleresults', - '/stats/compliancesummarydata', -]); - -// ── Summary prefixes that unambiguously mean "mutation → keep POST" ───────── -const MUTATION_SUMMARY = [ - 'add ', 'adds ', 'update ', 'updates ', - 'delete ', 'deletes ', 'remove ', 'removes ', - 'register ', 'registers ', 'submit ', 'submits ', - 'upload ', 'uploads ', 'reset ', 'resets ', - 'save ', 'saves ', 'clone ', 'clones ', - 'create ', 'creates ', 'send ', 'sends ', - 'set ', 'sets ', 'store ', 'stores ', - 'mark ', 'marks ', - 'acknowledge ', 'acknowledges ', - 'invalidate ', 'invalidates ', - 'test ', 'tests ', // test*Connection endpoints trigger external calls - 'attempt ', 'attempts ', - 'used to submit', 'used to add', - 'discover ', 'discovers ', - 'export ', 'exports ', - 're-parents', 'resubmit', - 'ask an agent', // sends a command to a remote agent - 'validates ', // validates a password — sends credentials -]; - -// ── Summary prefixes that unambiguously mean "read → keep GET" ─────────────── -const READ_SUMMARY = [ - 'get ', 'gets ', 'retrieve ', 'retrieves ', - 'return ', 'returns ', - 'list ', 'lists ', - 'fetch ', 'fetches ', - 'requests information', - 'a request to return', - 'a request to get', - 'a request to find', - 'has the current user', - 'echos ', 'echo ', - 'checks whether', - 'called by the agent, this returns', - 'report service', // all vague "Report Service" entries are list/get operations - 'stats service', - 'represents a request to get', - 'sign in', -]; - -// ── Path-segment prefixes used as fallback when summary is ambiguous ───────── -// Intentionally narrow: compound words like addOrUpdate, deleteRule, reevaluateEvents -// all start with a keyword, so startsWith() catches them without regex complexity. -// "start" and "sync" are excluded — too many false positives as path-parameter separators. -const MUTATION_SEGMENTS = [ - 'add', 'update', 'delete', 'register', 'submit', - 'upload', 'save', 'clone', 'create', 'reset', - 'promote', 'reparent', 'reregister', - 'apply', 'export', 'discover', 'resubmit', - 'acknowledge', 'setcomment', 'invalidate', 'ignore', - 'reevaluate', 'start', -]; - -function startsWith(str, prefixes) { - return prefixes.some(p => str.startsWith(p)); -} - -function classify(apiPath, methods) { - if (KEEP_BOTH.has(apiPath)) return 'both'; - - const summary = ((methods.get || {}).summary || '').trim().toLowerCase(); - const segments = apiPath.split('/').filter(s => s && !s.startsWith('{')); - - if (startsWith(summary, MUTATION_SUMMARY)) return 'post'; - if (startsWith(summary, READ_SUMMARY)) return 'get'; - - const isMutationPath = segments.some(seg => - MUTATION_SEGMENTS.some(pfx => seg.toLowerCase().startsWith(pfx)) - ); - if (isMutationPath) return 'post'; - - return 'both'; -} - -// ── Main ───────────────────────────────────────────────────────────────────── - -const text = readFileSync(YAML_PATH, 'utf8'); -const spec = load(text); - -let removedGet = 0; -let removedPost = 0; - -for (const [apiPath, methods] of Object.entries(spec.paths || {})) { - if (!('get' in methods) || !('post' in methods)) continue; - - const decision = classify(apiPath, methods); - if (decision === 'post') { - delete spec.paths[apiPath].get; - removedGet++; - } else if (decision === 'get') { - delete spec.paths[apiPath].post; - removedPost++; - } -} - -if (removedGet === 0 && removedPost === 0) { - console.log('deduplicate-openapi-methods: no duplicate methods found, spec is already clean.'); - process.exit(0); -} - -writeFileSync( - YAML_PATH, - dump(spec, { noRefs: true, lineWidth: -1, sortKeys: false }), - 'utf8' -); - -console.log( - `deduplicate-openapi-methods: removed ${removedGet} GET and ${removedPost} POST operations` + - ` from ${YAML_PATH}` -); diff --git a/static/openapi/changetracker-hub-8.1.yaml b/static/openapi/changetracker-hub-8.1.yaml index ad39619749..5734bcbee5 100644 --- a/static/openapi/changetracker-hub-8.1.yaml +++ b/static/openapi/changetracker-hub-8.1.yaml @@ -3,114 +3,130 @@ info: title: ChangeTracker Hub version: '8.1' servers: -- url: '{serverUrl}' - description: Your Change Tracker server URL - variables: - serverUrl: - default: https://localhost:5001/api - description: Full base URL including /api (e.g., https://your-server/api) + - url: https://localhost:5001/api paths: - /command/tasks/poll/{AgentId}: + '/command/tasks/poll/{AgentId}': get: tags: - - command - summary: Called by the agent, this returns a list of AgentTasks and latest tracking template definition dates for all the devices the agent manages. - description: Called by the agent, this returns a list of AgentTasks and latest tracking template definition dates for all the devices the agent manages. + - command + summary: 'Called by the agent, this returns a list of AgentTasks and latest tracking template definition dates for all the devices the agent manages.' + description: 'Called by the agent, this returns a list of AgentTasks and latest tracking template definition dates for all the devices the agent manages.' operationId: GetAgentPolltaskspollAgentId_Get parameters: - - name: UniqueId - in: query - description: Specifies the agent unique reference id. This is supplied in the return from the initial RegisterAgent call. - required: true - schema: - type: string - - name: AgentId - in: query - description: 'Specifies the agent id. Note: this the agent id excluding the device id: the poll returns tasks and configuration dates for all devices registered under this agent id.' - required: true - schema: - type: string - - name: LegacyId - in: query - description: 'The legacy v6.5 RA agent id. Note: this is only present for upgrade purposes.' - schema: - type: string - - name: PollTimeUtc - in: query - description: Specifies the local agent Utc time. Used to detect system time differences between agent and hub. - required: true - schema: - type: DateTime - format: date-time - x-nullable: false - - name: AgentVersion - in: query - description: Specifies the agent version. This is optional and typically only sent on initial poll. - schema: - type: string - - name: AgentMacAddresses - in: query - description: Specifies the agent physical/MAC addresses. This is optional and typically only sent on an initial poll or when the list changes. - schema: - type: string - - name: AgentIPv4 - in: query - description: Specifies the agent IP v4 addresses. This is optional and typically only sent on initial poll or when the list changes. - schema: - type: string - - name: AgentIPv6 - in: query - description: Specifies the agent IP v6 addresses. This is optional and typically only sent on initial poll or when the list changes. - schema: - type: string - - name: MachineName - in: query - description: Specifies the agent machine name including custom prefix, and domain prefix, if used. This is optional and typically only sent on initial poll or when the it changes. - schema: - type: string - - name: FullyQualifiedDomainName - in: query - description: Specifies the fully qualified domain name. This is optional and typically only sent on initial poll or when the it changes. - schema: - type: string - - name: AgentType - in: query - description: Specifies the type of agent - schema: - enum: - - Unknown - - NetDesktop - - Mono - - NetCore - - ExpressAgent - type: string - x-nullable: false - - name: Os - in: query - description: Specifies the agent operating system. This is optional and typically only sent on initial poll or when the it changes. - schema: - type: string - - name: DeviceIds - in: query - description: Specifies the deviceIds of the devices online that the agent is proxying. This is optional and typically only sent by a proxying agent. - style: form - schema: - type: array - items: + - name: UniqueId + in: query + description: Specifies the agent unique reference id. This is supplied in the return from the initial RegisterAgent call. + required: true + schema: type: string - - name: ReturnXml - in: query - description: Specifies whether to return the report task template xml in the response. This is optional and defaults to true. It can be used to prevent xml download on agents that implement a local cache of report definitions. - schema: - type: boolean - x-nullable: false - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: AgentId + in: query + description: 'Specifies the agent id. Note: this the agent id excluding the device id: the poll returns tasks and configuration dates for all devices registered under this agent id.' + required: true + schema: + type: string + - name: LegacyId + in: query + description: 'The legacy v6.5 RA agent id. Note: this is only present for upgrade purposes.' + schema: + type: string + - name: PollTimeUtc + in: query + description: Specifies the local agent Utc time. Used to detect system time differences between agent and hub. + required: true + schema: + type: DateTime + format: date-time + x-nullable: false + - name: AgentVersion + in: query + description: Specifies the agent version. This is optional and typically only sent on initial poll. + schema: + type: string + - name: AgentMacAddresses + in: query + description: Specifies the agent physical/MAC addresses. This is optional and typically only sent on an initial poll or when the list changes. + schema: + type: string + - name: AgentIPv4 + in: query + description: Specifies the agent IP v4 addresses. This is optional and typically only sent on initial poll or when the list changes. + schema: + type: string + - name: AgentIPv6 + in: query + description: Specifies the agent IP v6 addresses. This is optional and typically only sent on initial poll or when the list changes. + schema: + type: string + - name: MachineName + in: query + description: 'Specifies the agent machine name including custom prefix, and domain prefix, if used. This is optional and typically only sent on initial poll or when the it changes.' + schema: + type: string + - name: FullyQualifiedDomainName + in: query + description: Specifies the fully qualified domain name. This is optional and typically only sent on initial poll or when the it changes. + schema: + type: string + - name: AgentType + in: query + description: Specifies the type of agent + schema: + enum: + - Unknown + - NetDesktop + - Mono + - NetCore + - ExpressAgent + type: string + x-nullable: false + - name: Os + in: query + description: Specifies the agent operating system. This is optional and typically only sent on initial poll or when the it changes. + schema: + type: string + - name: DeviceIds + in: query + description: Specifies the deviceIds of the devices online that the agent is proxying. This is optional and typically only sent by a proxying agent. + style: form + schema: + type: array + items: + type: string + - name: ReturnXml + in: query + description: Specifies whether to return the report task template xml in the response. This is optional and defaults to true. It can be used to prevent xml download on agents that implement a local cache of report definitions. + schema: + type: boolean + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response object for GetAgentPoll + content: + application/json: + schema: + $ref: '#/components/schemas/GetAgentPollResponse' + security: + - Bearer: [ ] + post: + tags: + - command + summary: 'Called by the agent, this returns a list of AgentTasks and latest tracking template definition dates for all the devices the agent manages.' + description: 'Called by the agent, this returns a list of AgentTasks and latest tracking template definition dates for all the devices the agent manages.' + operationId: GetAgentPolltaskspollAgentId_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetAgentPoll' + x-bodyName: body responses: '200': description: The response object for GetAgentPoll @@ -119,116 +135,137 @@ paths: schema: $ref: '#/components/schemas/GetAgentPollResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /command/tasks/agent/{AgentId}: + - $ref: '#/components/parameters/Accept' + '/command/tasks/agent/{AgentId}': get: tags: - - command - summary: Requests information about tasks for the given agent + - command + summary: Requests information about tasks for the given agent. description: Requests information about tasks for the given agent. operationId: GetAgentTaskstasksagentAgentId_Get parameters: - - name: AgentId - in: query - description: Specifies the agent's AgentId. - schema: - type: string - - name: DeviceId - in: query - description: Specifies the agent's DeviceId. - schema: - type: string - - name: TaskStatuses - in: query - description: Specifies a value indicating the task statuses to filter by. - style: form - schema: - type: array - items: + - name: AgentId + in: query + description: Specifies the agent's AgentId. + schema: type: string - x-nullable: false - - name: TaskIds - in: query - description: Specifies value indicating the task ids to look for. - style: form - schema: - type: array - items: + - name: DeviceId + in: query + description: Specifies the agent's DeviceId. + schema: + type: string + - name: TaskStatuses + in: query + description: Specifies a value indicating the task statuses to filter by. + style: form + schema: + type: array + items: + type: string + x-nullable: false + - name: TaskIds + in: query + description: Specifies value indicating the task ids to look for. + style: form + schema: + type: array + items: + type: integer + format: int32 + x-nullable: false + - name: PolicyRunId + in: query + description: Specifies the policy run id associated with the last run of the report etc. use this to find tasks started by a given scheduled policy. + schema: type: integer format: int32 - x-nullable: false - - name: PolicyRunId - in: query - description: Specifies the policy run id associated with the last run of the report etc. use this to find tasks started by a given scheduled policy. - schema: - type: integer - format: int32 - - name: TaskType - in: query - description: Specifies the specific task type to retrieve details for - schema: - type: string - - name: Concise - in: query - description: Return a concise view of the tasks? i.e not the Text and ResultData properties - schema: - type: boolean - x-nullable: false - - name: IgnoreActiveDates - in: query - description: By default only AgentTasks that are currently between their StartDate and EndDate values are returned, this flag returns tasks irrespective of dates. - schema: - type: boolean - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: TaskType + in: query + description: Specifies the specific task type to retrieve details for + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Concise + in: query + description: Return a concise view of the tasks? i.e not the Text and ResultData properties + schema: + type: boolean + x-nullable: false + - name: IgnoreActiveDates + in: query + description: 'By default only AgentTasks that are currently between their StartDate and EndDate values are returned, this flag returns tasks irrespective of dates.' + schema: + type: boolean + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response object for GetAgentTasks + content: + application/json: + schema: + $ref: '#/components/schemas/GetAgentTasksResponse' + security: + - Bearer: [ ] + post: + tags: + - command + summary: Requests information about tasks for the given agent. + description: Requests information about tasks for the given agent. + operationId: GetAgentTaskstasksagentAgentId_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetAgentTasks' + x-bodyName: body responses: '200': description: The response object for GetAgentTasks @@ -237,14 +274,14 @@ paths: schema: $ref: '#/components/schemas/GetAgentTasksResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /submitAgentTaskResultStream/{AgentId}/{DeviceId}/{TaskId}: + - $ref: '#/components/parameters/Accept' + '/submitAgentTaskResultStream/{AgentId}/{DeviceId}/{TaskId}': post: tags: - - submitAgentTaskResultStream - summary: Used to submit agent task result data to the hub as a stream + - submitAgentTaskResultStream + summary: Used to submit agent task result data to the hub as a stream. description: Used to submit agent task result data to the hub as a stream. operationId: SubmitAgentTaskResultStreamAgentIdDeviceIdTaskId_Post requestBody: @@ -261,15 +298,74 @@ paths: schema: $ref: '#/components/schemas/SubmitAgentTaskResultStreamResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /submitAgentTaskResultData: + get: + tags: + - submitAgentTaskResultData + summary: 'Adds report result data for the given agent report, called by the agent. This is the new format used by the Gen 7 agent.' + description: 'Adds report result data for the given agent report, called by the agent. This is the new format used by the Gen 7 agent.' + operationId: SubmitAgentTaskResultData_Get + parameters: + - name: AgentId + in: query + description: 'Specifies the agent id. This required for external api callers, but optional internally because the system may update / expire tasks without knowing the AgentId, but external api entry points should ensure it is set to prevent tampering with tasks not owned by the caller.' + schema: + type: string + - name: DeviceId + in: query + description: 'Specifies the device id. Note: this is optional as the system knows the device id from the task.' + schema: + type: string + - name: TaskId + in: query + description: Specifies the task id that this data relates to. + schema: + type: integer + format: int32 + x-nullable: false + - name: DataValues + in: query + description: Specifies the result data items. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/VariableDataValue' + - name: Status + in: query + description: 'Specifies the status of the task. e.g complete, or error.' + schema: + enum: + - AwaitingPickup + - InProgress + - Complete + - Error + - Deleted + - ProcessingResults + type: string + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - submitAgentTaskResultData - summary: Adds report result data for the given agent report, called by the agent. This is the new format used by the Gen 7 agent. - description: Adds report result data for the given agent report, called by the agent. This is the new format used by the Gen 7 agent. + - submitAgentTaskResultData + summary: 'Adds report result data for the given agent report, called by the agent. This is the new format used by the Gen 7 agent.' + description: 'Adds report result data for the given agent report, called by the agent. This is the new format used by the Gen 7 agent.' operationId: SubmitAgentTaskResultData_Post requestBody: content: @@ -281,17 +377,105 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /submitAgentTaskResult: + get: + tags: + - submitAgentTaskResult + summary: 'Adds task result data for the given agent task, called by the agent.' + description: 'Adds task result data for the given agent task, called by the agent.' + operationId: SubmitAgentTaskResult_Get + parameters: + - name: AgentId + in: query + description: Specifies the agent id. + required: true + schema: + type: string + - name: DeviceId + in: query + description: Specifies the device id. + required: true + schema: + type: string + - name: TaskId + in: query + description: Specifies the task id. + required: true + schema: + type: integer + format: int32 + x-nullable: false + - name: ResultData + in: query + description: Specifies the result data. If the task result is a single string it may be specified here. Otherwise specify it in ResultDataItems or RuleItemResults. + schema: + type: string + - name: ResultDataItems + in: query + description: 'Specifies the result data items, when the task result is a list of data items (eg get processes).' + style: form + schema: + type: array + items: + $ref: '#/components/schemas/AgentDataItem' + - name: Status + in: query + description: Specifies the task status. + schema: + enum: + - AwaitingPickup + - InProgress + - Complete + - Error + - Deleted + - ProcessingResults + type: string + x-nullable: false + - name: StatusMessage + in: query + description: 'Specifies the additional status message, if any.' + schema: + type: string + - name: ReportResultSummary + in: query + description: Specifies the report result summary when this task represents a 'AgentTaskType.ReportExecutionRequest'. + schema: + $ref: '#/components/schemas/ReportResultSummary' + - name: RuleItemResults + in: query + description: Specifies the rule item results when this task represents a 'AgentTaskType.ReportExecutionRequest'. + schema: + title: 'Dictionary>' + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/RuleItemResult' + description: 'Dictionary>' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - submitAgentTaskResult - summary: Adds task result data for the given agent task, called by the agent. - description: Adds task result data for the given agent task, called by the agent. + - submitAgentTaskResult + summary: 'Adds task result data for the given agent task, called by the agent.' + description: 'Adds task result data for the given agent task, called by the agent.' operationId: SubmitAgentTaskResult_Post requestBody: content: @@ -303,1825 +487,4701 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /credential: get: tags: - - credential - summary: Get specific credentials for requested type and key (name) + - credential + summary: Get specific credentials for requested type and key (name). description: Get specific credentials for requested type and key (name). operationId: GetCredentials_Get parameters: - - name: CredentialsType - in: query - description: Specifies the credentials type. - schema: - enum: - - Unknown - - Shell - - Database - - FTP - - Cloud - - ESX - - ITSM - - Splunk - type: string - x-nullable: false - - name: Key - in: query - description: Specifies the key (name) of the required credentials. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: CredentialsType + in: query + description: Specifies the credentials type. + schema: + enum: + - Unknown + - Shell + - Database + - FTP + - Cloud + - ESX + - ITSM + - Splunk + type: string + x-nullable: false + - name: Key + in: query + description: Specifies the key (name) of the required credentials. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Represents some credentials used to connect to a remote service (e.g SSH, database etc). + description: 'Represents some credentials used to connect to a remote service (e.g SSH, database etc).' content: application/json: schema: $ref: '#/components/schemas/Credentials' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /policyTemplates: - get: + - Bearer: [ ] + post: tags: - - policyTemplates - summary: Gets matching config templates - description: Gets matching config templates. - operationId: GetPolicyTemplates_Get - parameters: - - name: Name - in: query - description: Specifies a single policy name (id) to search for. - schema: - type: string - - name: NameContains - in: query - description: Specifies the text the name contains. Used to search for partial match if 'Name' not specified. - schema: - type: string - - name: Names - in: query - description: Specifies a list of policy names (ids) to search for. - style: form - schema: - type: array - items: - type: string - - name: ReturnXml - in: query - description: Specifies a value indicating whether to return the template xml in the response. Defaults to false. - schema: - type: boolean - x-nullable: false - - name: ReturnSignatures - in: query - description: Specifies a value indicating whether to calculate and return the template signatures in the response. Defaults to false. - schema: - type: boolean - x-nullable: false - - name: IsActive - in: query - description: Get the Active version of a template - schema: - type: boolean - - name: IsLatest - in: query - description: Get the Latest version of a template - schema: - type: boolean - - name: IsSystem - in: query - description: Get System supplied templates - schema: - type: boolean - - name: HasRules - in: query - description: Get templates with Rules - schema: - type: boolean - - name: HasTrackers - in: query - description: Get templates with Trackers - schema: - type: boolean - - name: TemplateTrackerTypes - in: query - description: Specifies the template's tracker types. - style: form - schema: - type: array - items: - type: string - - name: TemplateVersion - in: query - description: Specifies the template version to get. - schema: - type: string - - name: UsageTags - in: query - description: Specifies the policy usage types to get. - style: form - schema: - type: array - items: - type: string - - name: IsTrusted - in: query - description: Policy templates which contains commands that are trusted - schema: - type: boolean - - name: NotificationRefId - in: query - description: Policy templates associated with the supplied notification ref id - schema: - type: string - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: - type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - credential + summary: Get specific credentials for requested type and key (name). + description: Get specific credentials for requested type and key (name). + operationId: GetCredentials_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetCredentials' + x-bodyName: body responses: '200': - description: Response to a request for matching config templates. + description: 'Represents some credentials used to connect to a remote service (e.g SSH, database etc).' content: application/json: schema: - $ref: '#/components/schemas/GetPolicyTemplatesResponse' + $ref: '#/components/schemas/Credentials' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /policyTemplateVariables: + - $ref: '#/components/parameters/Accept' + /policyTemplates: get: tags: - - policyTemplateVariables - summary: A request to get a list of variable definitions from a named report to be collected by the agent - description: A request to get a list of variable definitions from a named report to be collected by the agent. - operationId: GetPolicyTemplateVariables_Get + - policyTemplates + summary: Gets matching config templates. + description: Gets matching config templates. + operationId: GetPolicyTemplates_Get parameters: - - name: PolicyTemplateName - in: query - description: Specifies the report template name. - schema: - type: string - - name: ReturnConfigAsXml - in: query - description: For any config that needs to be applied, return as XML. - schema: - type: boolean - x-nullable: false - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false - responses: - '200': - description: The list of variable definitions from a named report to be collected by the agent. - content: - application/json: - schema: - $ref: '#/components/schemas/GetPolicyTemplateVariablesResponse' - security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /deviceCredentials: - get: + - name: Name + in: query + description: Specifies a single policy name (id) to search for. + schema: + type: string + - name: NameContains + in: query + description: Specifies the text the name contains. Used to search for partial match if 'Name' not specified. + schema: + type: string + - name: Names + in: query + description: Specifies a list of policy names (ids) to search for. + style: form + schema: + type: array + items: + type: string + - name: ReturnXml + in: query + description: Specifies a value indicating whether to return the template xml in the response. Defaults to false. + schema: + type: boolean + x-nullable: false + - name: ReturnSignatures + in: query + description: Specifies a value indicating whether to calculate and return the template signatures in the response. Defaults to false. + schema: + type: boolean + x-nullable: false + - name: IsActive + in: query + description: Get the Active version of a template + schema: + type: boolean + - name: IsLatest + in: query + description: Get the Latest version of a template + schema: + type: boolean + - name: IsSystem + in: query + description: Get System supplied templates + schema: + type: boolean + - name: HasRules + in: query + description: Get templates with Rules + schema: + type: boolean + - name: HasTrackers + in: query + description: Get templates with Trackers + schema: + type: boolean + - name: TemplateTrackerTypes + in: query + description: Specifies the template's tracker types. + style: form + schema: + type: array + items: + type: string + - name: TemplateVersion + in: query + description: Specifies the template version to get. + schema: + type: string + - name: UsageTags + in: query + description: Specifies the policy usage types to get. + style: form + schema: + type: array + items: + type: string + - name: IsTrusted + in: query + description: Policy templates which contains commands that are trusted + schema: + type: boolean + - name: NotificationRefId + in: query + description: Policy templates associated with the supplied notification ref id + schema: + type: string + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Response to a request for matching config templates. + content: + application/json: + schema: + $ref: '#/components/schemas/GetPolicyTemplatesResponse' + security: + - Bearer: [ ] + post: tags: - - deviceCredentials - summary: A request to get the names of credentials associated with an agent - description: A request to get the names of credentials associated with an agent. - operationId: GetCredentialsForAgentDevice_Get - parameters: - - name: AgentDevice - in: query - description: Specifies the agent device. - schema: - $ref: '#/components/schemas/AgentDevice' - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - policyTemplates + summary: Gets matching config templates. + description: Gets matching config templates. + operationId: GetPolicyTemplates_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetPolicyTemplates' + x-bodyName: body responses: '200': - description: Success + description: Response to a request for matching config templates. content: application/json: schema: - title: List - type: array - items: - type: string + $ref: '#/components/schemas/GetPolicyTemplatesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /deviceDbCredentials: + - $ref: '#/components/parameters/Accept' + /policyTemplateVariables: get: tags: - - deviceDbCredentials - summary: A request to get the database credentials associated with a database proxied agent - description: A request to get the database credentials associated with a database proxied agent. - operationId: GetDbCredentialForDatabaseAgentDevice_Get + - policyTemplateVariables + summary: A request to get a list of variable definitions from a named report to be collected by the agent. + description: A request to get a list of variable definitions from a named report to be collected by the agent. + operationId: GetPolicyTemplateVariables_Get parameters: - - name: AgentDevice - in: query - description: Specifies the agent device. - schema: - $ref: '#/components/schemas/AgentDevice' - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: PolicyTemplateName + in: query + description: Specifies the report template name. + schema: + type: string + - name: ReturnConfigAsXml + in: query + description: 'For any config that needs to be applied, return as XML.' + schema: + type: boolean + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Represents some credentials used to connect to a remote service (e.g SSH, database etc). + description: The list of variable definitions from a named report to be collected by the agent. content: application/json: schema: - $ref: '#/components/schemas/Credentials' + $ref: '#/components/schemas/GetPolicyTemplateVariablesResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /groupMemberships: - get: + - Bearer: [ ] + post: tags: - - groupMemberships - summary: A request to return groups this agent or group is a member of, including parents of parents etc. - description: A request to return groups this agent or group is a member of, including parents of parents etc. - operationId: GroupMemberships_Get - parameters: - - name: MemberName - in: query - description: Specifies the member name to retrieve group memberships for. - schema: - type: string - - name: MemberType - in: query - description: Specifies the member type of the member specified by MemberName (AgentDevice or Group). - schema: - enum: - - None - - AgentDevice - - Group - type: string - x-nullable: false - - name: ExcludeInherited - in: query - description: Specifies a value indicating whether to exclude inherited groups. This defaults to false meaning that all groups including those that are parents of thoseexplicitly set are returned, for example if Windows 7 group is a member of Windows group, and a device is explicitly a member of Windows 7the function will return 'Windows, Windows 7'. If 'ExcludeInherited' is true, only 'Windows 7' will be returned. - schema: - type: boolean - x-nullable: false - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - policyTemplateVariables + summary: A request to get a list of variable definitions from a named report to be collected by the agent. + description: A request to get a list of variable definitions from a named report to be collected by the agent. + operationId: GetPolicyTemplateVariables_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetPolicyTemplateVariables' + x-bodyName: body responses: '200': - description: Success + description: The list of variable definitions from a named report to be collected by the agent. content: application/json: schema: - title: List - type: array - items: - type: string + $ref: '#/components/schemas/GetPolicyTemplateVariablesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /agents: + - $ref: '#/components/parameters/Accept' + /deviceCredentials: get: tags: - - agents - summary: A request to return agents matching the device filter - description: A request to return agents matching the device filter. - operationId: GetAgents_Get + - deviceCredentials + summary: A request to get the names of credentials associated with an agent. + description: A request to get the names of credentials associated with an agent. + operationId: GetCredentialsForAgentDevice_Get parameters: - - name: ExcludeTotalCount - in: query - description: Specifies a value indicating whether to calculate the total count returned in the GetAgentsResponse.Total - schema: - type: boolean - x-nullable: false - - name: DeviceFilter - in: query - description: Specifies the agents to search for by id or group membership. - schema: - $ref: '#/components/schemas/DeviceFilter' - - name: GetAgentGroupDetails - in: query - description: Specifies a value indicating whether to get agent group details. - schema: - type: boolean - x-nullable: false - - name: GetRelatedCredentials - in: query - description: Specifies a value indicating whether to get related credentials. - schema: - type: boolean - x-nullable: false - - name: GetRelatedPlannedChanges - in: query - description: Specifies a value indicating whether to get related planned changes. - schema: - type: boolean - x-nullable: false - - name: GetRelatedProxyAgents - in: query - description: Specifies a value indicating whether to get related proxy agents. - schema: - type: boolean - x-nullable: false - - name: GetRelatedTemplates - in: query - description: Specifies a value indicating whether to get templates applied to the returned agents. - schema: - type: boolean - x-nullable: false - - name: IncludeMasterInFilter - in: query - description: Specifies a value indicating whether to include proxy master devices in filters that match a child proxied device but would not otherwise return the proxying master. - schema: - type: boolean - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: - type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: AgentDevice + in: query + description: Specifies the agent device. + schema: + $ref: '#/components/schemas/AgentDevice' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: The response object for GetAgents + description: Success content: application/json: schema: - $ref: '#/components/schemas/GetAgentsResponse' + title: List + type: array + items: + type: string security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /agents/register: + - Bearer: [ ] post: tags: - - agents - summary: Registers the details of an Agent with the system - description: Registers the details of an Agent with the system. - operationId: RegisterAgentregister_Post + - deviceCredentials + summary: A request to get the names of credentials associated with an agent. + description: A request to get the names of credentials associated with an agent. + operationId: GetCredentialsForAgentDevice_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/RegisterAgent' + $ref: '#/components/schemas/GetCredentialsForAgentDevice' x-bodyName: body responses: '200': - description: Represents a remote NNT Agent. May be a 1.x Agent, Gen7 Agent or Express Agent or a proxied device. + description: Success content: application/json: schema: - $ref: '#/components/schemas/Agent' + title: List + type: array + items: + type: string security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /agents/update: + - $ref: '#/components/parameters/Accept' + /deviceDbCredentials: + get: + tags: + - deviceDbCredentials + summary: A request to get the database credentials associated with a database proxied agent. + description: A request to get the database credentials associated with a database proxied agent. + operationId: GetDbCredentialForDatabaseAgentDevice_Get + parameters: + - name: AgentDevice + in: query + description: Specifies the agent device. + schema: + $ref: '#/components/schemas/AgentDevice' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: 'Represents some credentials used to connect to a remote service (e.g SSH, database etc).' + content: + application/json: + schema: + $ref: '#/components/schemas/Credentials' + security: + - Bearer: [ ] post: tags: - - agents - summary: Update an Agent's details - description: Update an Agent's details. - operationId: UpdateAgentupdate_Post + - deviceDbCredentials + summary: A request to get the database credentials associated with a database proxied agent. + description: A request to get the database credentials associated with a database proxied agent. + operationId: GetDbCredentialForDatabaseAgentDevice_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/UpdateAgent' + $ref: '#/components/schemas/GetDbCredentialForDatabaseAgentDevice' x-bodyName: body responses: '200': - description: The response object for GetAgents + description: 'Represents some credentials used to connect to a remote service (e.g SSH, database etc).' content: application/json: schema: - $ref: '#/components/schemas/GetAgentsResponse' + $ref: '#/components/schemas/Credentials' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /agents/search: + - $ref: '#/components/parameters/Accept' + /groupMemberships: get: tags: - - agents - summary: A request to find agents matching the device filter and search criteria - description: A request to find agents matching the device filter and search criteria. - operationId: SearchAgentssearch_Get + - groupMemberships + summary: 'A request to return groups this agent or group is a member of, including parents of parents etc.' + description: 'A request to return groups this agent or group is a member of, including parents of parents etc.' + operationId: GroupMemberships_Get parameters: - - name: DeviceFilter - in: query - description: Limits the agents to search for by id or group membership. - schema: - $ref: '#/components/schemas/DeviceFilter' - - name: MatchText - in: query - description: Text to search for in the Agents fields. - schema: - type: string - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: MemberName + in: query + description: Specifies the member name to retrieve group memberships for. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: MemberType + in: query + description: Specifies the member type of the member specified by MemberName (AgentDevice or Group). + schema: + enum: + - None + - AgentDevice + - Group + type: string + x-nullable: false + - name: ExcludeInherited + in: query + description: 'Specifies a value indicating whether to exclude inherited groups. This defaults to false meaning that all groups including those that are parents of thoseexplicitly set are returned, for example if Windows 7 group is a member of Windows group, and a device is explicitly a member of Windows 7the function will return ''Windows, Windows 7''. If ''ExcludeInherited'' is true, only ''Windows 7'' will be returned.' + schema: + type: boolean + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: The response object for SearchAgents + description: Success content: application/json: schema: - $ref: '#/components/schemas/SearchAgentsResponse' + title: List + type: array + items: + type: string security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /agents/preRegister: + - Bearer: [ ] post: tags: - - agents - summary: Registers the details of the specified Agents with the system - description: Registers the details of the specified Agents with the system. - operationId: PreRegisterAgentspreRegister_Post + - groupMemberships + summary: 'A request to return groups this agent or group is a member of, including parents of parents etc.' + description: 'A request to return groups this agent or group is a member of, including parents of parents etc.' + operationId: GroupMemberships_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/PreRegisterAgents' + $ref: '#/components/schemas/GroupMemberships' x-bodyName: body responses: '200': - description: The response object for PreRegisterAgents + description: Success content: application/json: schema: - $ref: '#/components/schemas/PreRegisterAgentsResponse' + title: List + type: array + items: + type: string security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /deviceConfig: + - $ref: '#/components/parameters/Accept' + /agents: get: tags: - - deviceConfig - summary: Get the tracking configuration template from the merged result of the group configurations for the groups the device is in - description: Get the tracking configuration template from the merged result of the group configurations for the groups the device is in. - operationId: GetDeviceConfig_Get + - agents + summary: A request to return agents matching the device filter. + description: A request to return agents matching the device filter. + operationId: GetAgents_Get parameters: - - name: AgentDevice - in: query - description: Specifies the agent and device id. Either 'AgentDevice' or 'AgentDeviceId' can be used. - schema: - $ref: '#/components/schemas/AgentDevice' - - name: AgentDeviceId - in: query - description: Specifies the combined agent and device id, for example 1,1. - schema: - type: string - - name: ReturnDocument - in: query - description: Specifies a value indicating whether return to return a device template object in GetDeviceConfigResponse.DeviceTemplate if trueor an xml string in GetDeviceConfigResponse.Xml if false. - schema: - type: boolean - x-nullable: false - - name: ReturnDocumentAsPolicyRuleSet - in: query - description: Specifies a value indicating whether return to return a device template rule-set object in GetDeviceConfigResponse.DeviceTemplate if trueor an xml string in GetDeviceConfigResponse.Xml if false. - schema: - type: boolean - x-nullable: false - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false - responses: - '200': - description: Represents the tracking configuration template from the merged result of the group configurations for the groups the device is in. - content: - application/json: - schema: - $ref: '#/components/schemas/GetDeviceConfigResponse' - security: - - Bearer: [] + - name: ExcludeTotalCount + in: query + description: Specifies a value indicating whether to calculate the total count returned in the GetAgentsResponse.Total + schema: + type: boolean + x-nullable: false + - name: DeviceFilter + in: query + description: Specifies the agents to search for by id or group membership. + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: GetAgentGroupDetails + in: query + description: Specifies a value indicating whether to get agent group details. + schema: + type: boolean + x-nullable: false + - name: GetRelatedCredentials + in: query + description: Specifies a value indicating whether to get related credentials. + schema: + type: boolean + x-nullable: false + - name: GetRelatedPlannedChanges + in: query + description: Specifies a value indicating whether to get related planned changes. + schema: + type: boolean + x-nullable: false + - name: GetRelatedProxyAgents + in: query + description: Specifies a value indicating whether to get related proxy agents. + schema: + type: boolean + x-nullable: false + - name: GetRelatedTemplates + in: query + description: Specifies a value indicating whether to get templates applied to the returned agents. + schema: + type: boolean + x-nullable: false + - name: IncludeMasterInFilter + in: query + description: Specifies a value indicating whether to include proxy master devices in filters that match a child proxied device but would not otherwise return the proxying master. + schema: + type: boolean + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response object for GetAgents + content: + application/json: + schema: + $ref: '#/components/schemas/GetAgentsResponse' + security: + - Bearer: [ ] + post: + tags: + - agents + summary: A request to return agents matching the device filter. + description: A request to return agents matching the device filter. + operationId: GetAgents_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetAgents' + x-bodyName: body + responses: + '200': + description: The response object for GetAgents + content: + application/json: + schema: + $ref: '#/components/schemas/GetAgentsResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /agents/register: + get: + tags: + - agents + summary: Registers the details of an Agent with the system. + description: Registers the details of an Agent with the system. + operationId: RegisterAgentregister_Get + parameters: + - name: CanProxy + in: query + description: Specifies a value indicating whether the agent can proxy connections to other devices. + schema: + type: boolean + x-nullable: false + - name: CredentialKey + in: query + description: Specifies the credential key. Only allowed for proxied devices. + schema: + type: string + - name: DbConnection + in: query + description: Specifies the details for a database connection. + schema: + $ref: '#/components/schemas/DbConnection' + - name: DeviceName + in: query + description: Specifies the device name. + schema: + type: string + - name: GroupNames + in: query + description: Specifies the group names. Only allowed for proxied devices. + style: form + schema: + type: array + items: + type: string + - name: HostName + in: query + description: Specifies the host name. This is the name or IP address used for agentless access to this device by a proxy. + schema: + type: string + - name: HostType + in: query + description: Specifies the host type. + schema: + enum: + - Unknown + - Unix + - Windows + - Network + - Database + - Cloud + - ESX + - Splunk + type: string + x-nullable: false + - name: MacAddresses + in: query + description: Specifies the mac addresses. + schema: + type: string + - name: IPv4 + in: query + description: Specifies the v4 ip address. + schema: + type: string + - name: IPv6 + in: query + description: Specifies the v6 ip address. + schema: + type: string + - name: LegacyHubId + in: query + description: Specifies the legacy hub id. + schema: + type: string + - name: DiscoveryId + in: query + description: Specifies the internal discovery-based id. + schema: + type: string + - name: DiscoveryTaskId + in: query + description: Specifies the internal discovery task id. + schema: + type: string + - name: OnlineDetection + in: query + description: Specifies the method to use when detecting if a proxed device is online + schema: + enum: + - None + - Ping + - TcpConnect + type: string + x-nullable: false + - name: Os + in: query + description: Specifies the Operating System full description as reported by the device. + schema: + type: string + - name: KnownOsName + in: query + description: Specifies the Operating System from the list of known Os names. + schema: + type: string + - name: OsUserSpecified + in: query + description: 'Specifies the operating system as entered by the user. This will override the discovered Os in the UI, if specified.' + schema: + type: string + - name: PollPeriodSeconds + in: query + description: Specifies the poll period in seconds. + schema: + type: integer + format: int32 + - name: ProxiedByAgentId + in: query + description: Specifies the agent id of the proxy agent this device will be proxied by. + schema: + type: string + - name: Registered + in: query + description: Specifies a value indicating whether registered. + schema: + type: boolean + x-nullable: false + - name: BaselineSendEnabled + in: query + description: Specifies that the agent send baseline events flag should be set according to the value specified in the Agent property. + schema: + type: boolean + x-nullable: false + - name: UniqueId + in: query + description: 'Specifies a value uniquely identifying the agent independent of name or agent id from a previous registration. Used to detect a need to re-register when underlying hub store has been emptied, otherwise the autoincrementing agent id counter can result in clashes as already used ids are reissued to different agents.' + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: 'Represents a remote NNT Agent. May be a 1.x Agent, Gen7 Agent or Express Agent or a proxied device.' + content: + application/json: + schema: + $ref: '#/components/schemas/Agent' + security: + - Bearer: [ ] + post: + tags: + - agents + summary: Registers the details of an Agent with the system. + description: Registers the details of an Agent with the system. + operationId: RegisterAgentregister_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RegisterAgent' + x-bodyName: body + responses: + '200': + description: 'Represents a remote NNT Agent. May be a 1.x Agent, Gen7 Agent or Express Agent or a proxied device.' + content: + application/json: + schema: + $ref: '#/components/schemas/Agent' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /agents/update: + get: + tags: + - agents + summary: Update an Agent's details. + description: Update an Agent's details. + operationId: UpdateAgentupdate_Get + parameters: + - name: Agent + in: query + description: Specifies the agent being updated + schema: + $ref: '#/components/schemas/Agent' + - name: CredentialKey + in: query + description: Specifies the credential key to associate with this agent. e.g ssh credentials. + schema: + type: string + - name: DbConnection + in: query + description: Specifies the details for a database connection. + schema: + $ref: '#/components/schemas/DbConnection' + - name: GroupNames + in: query + description: Specifies a list of group names this agent belongs to. + style: form + schema: + type: array + items: + type: string + - name: UpdateAgentDeviceName + in: query + description: Specifies that the agent device name should be updated according to the value specified in the Agent property. + schema: + type: boolean + x-nullable: false + - name: UpdateAgentHostType + in: query + description: Specifies that the agent host type should be updated according to the value specified in the Agent property. + schema: + type: boolean + x-nullable: false + - name: UpdateCredentialKey + in: query + description: Specifies that the agent credential key should be updated according to the value specified. + schema: + type: boolean + x-nullable: false + - name: UpdateDbConnectionDetails + in: query + description: Specifies that the agent database connection details should be updated according to the values specified. + schema: + type: boolean + x-nullable: false + - name: UpdateDiagnosticModeEnabled + in: query + description: Specifies that the agent diagnostic mode flag should be updated according to the value specified in the Agent property. + schema: + type: boolean + x-nullable: false + - name: UpdateEventBlockEnabled + in: query + description: Specifies that the agent events blocked flag should be updated according to the value specified in the Agent property. + schema: + type: boolean + x-nullable: false + - name: UpdateGroupNames + in: query + description: Specifies that the agent group names should be updated according to the value specified. + schema: + type: boolean + x-nullable: false + - name: UpdateHostName + in: query + description: Specifies that the agent host name should be updated according to the value specified in the Agent property. + schema: + type: boolean + x-nullable: false + - name: UpdateIPv4 + in: query + description: Specifies that the IPv4 should be updated according to the value specified in the Agent property. + schema: + type: boolean + x-nullable: false + - name: UpdateOnlineDetection + in: query + description: Specifies that the agentonline detection mode should be updated according to the value specified in the Agent property. + schema: + type: boolean + x-nullable: false + - name: UpdateOsUserSpecified + in: query + description: Specifies that the agent user specified os type should be updated according to the value specified in the Agent property. + schema: + type: boolean + x-nullable: false + - name: UpdateBaselineSendEnabled + in: query + description: Specifies that the agent send baseline events flag should be updated according to the value specified in the Agent property. + schema: + type: boolean + x-nullable: false + - name: ClearUniqueId + in: query + description: 'Specifies that the agent UniqueId should be cleared, allowing registration by another device of the same name, but different UniqueId.' + schema: + type: boolean + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response object for GetAgents + content: + application/json: + schema: + $ref: '#/components/schemas/GetAgentsResponse' + security: + - Bearer: [ ] + post: + tags: + - agents + summary: Update an Agent's details. + description: Update an Agent's details. + operationId: UpdateAgentupdate_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateAgent' + x-bodyName: body + responses: + '200': + description: The response object for GetAgents + content: + application/json: + schema: + $ref: '#/components/schemas/GetAgentsResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /agents/search: + get: + tags: + - agents + summary: A request to find agents matching the device filter and search criteria. + description: A request to find agents matching the device filter and search criteria. + operationId: SearchAgentssearch_Get + parameters: + - name: DeviceFilter + in: query + description: Limits the agents to search for by id or group membership. + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: MatchText + in: query + description: Text to search for in the Agents fields. + schema: + type: string + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response object for SearchAgents + content: + application/json: + schema: + $ref: '#/components/schemas/SearchAgentsResponse' + security: + - Bearer: [ ] + post: + tags: + - agents + summary: A request to find agents matching the device filter and search criteria. + description: A request to find agents matching the device filter and search criteria. + operationId: SearchAgentssearch_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SearchAgents' + x-bodyName: body + responses: + '200': + description: The response object for SearchAgents + content: + application/json: + schema: + $ref: '#/components/schemas/SearchAgentsResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /agents/preRegister: + get: + tags: + - agents + summary: Registers the details of the specified Agents with the system. + description: Registers the details of the specified Agents with the system. + operationId: PreRegisterAgentspreRegister_Get + parameters: + - name: Agents + in: query + description: A list of agents to pre-register at the hub. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/RegisterAgent' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response object for PreRegisterAgents + content: + application/json: + schema: + $ref: '#/components/schemas/PreRegisterAgentsResponse' + security: + - Bearer: [ ] + post: + tags: + - agents + summary: Registers the details of the specified Agents with the system. + description: Registers the details of the specified Agents with the system. + operationId: PreRegisterAgentspreRegister_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PreRegisterAgents' + x-bodyName: body + responses: + '200': + description: The response object for PreRegisterAgents + content: + application/json: + schema: + $ref: '#/components/schemas/PreRegisterAgentsResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /deviceConfig: + get: + tags: + - deviceConfig + summary: Get the tracking configuration template from the merged result of the group configurations for the groups the device is in. + description: Get the tracking configuration template from the merged result of the group configurations for the groups the device is in. + operationId: GetDeviceConfig_Get + parameters: + - name: AgentDevice + in: query + description: Specifies the agent and device id. Either 'AgentDevice' or 'AgentDeviceId' can be used. + schema: + $ref: '#/components/schemas/AgentDevice' + - name: AgentDeviceId + in: query + description: 'Specifies the combined agent and device id, for example 1,1.' + schema: + type: string + - name: ReturnDocument + in: query + description: Specifies a value indicating whether return to return a device template object in GetDeviceConfigResponse.DeviceTemplate if trueor an xml string in GetDeviceConfigResponse.Xml if false. + schema: + type: boolean + x-nullable: false + - name: ReturnDocumentAsPolicyRuleSet + in: query + description: Specifies a value indicating whether return to return a device template rule-set object in GetDeviceConfigResponse.DeviceTemplate if trueor an xml string in GetDeviceConfigResponse.Xml if false. + schema: + type: boolean + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Represents the tracking configuration template from the merged result of the group configurations for the groups the device is in. + content: + application/json: + schema: + $ref: '#/components/schemas/GetDeviceConfigResponse' + security: + - Bearer: [ ] + post: + tags: + - deviceConfig + summary: Get the tracking configuration template from the merged result of the group configurations for the groups the device is in. + description: Get the tracking configuration template from the merged result of the group configurations for the groups the device is in. + operationId: GetDeviceConfig_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetDeviceConfig' + x-bodyName: body + responses: + '200': + description: Represents the tracking configuration template from the merged result of the group configurations for the groups the device is in. + content: + application/json: + schema: + $ref: '#/components/schemas/GetDeviceConfigResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /deviceSettings: + get: + tags: + - deviceSettings + summary: 'Gets the device settings for the device or group, based on the global device settings and any group specific overrides.' + description: 'Gets the device settings for the device or group, based on the global device settings and any group specific overrides.' + operationId: GetDeviceSettings_Get + parameters: + - name: AgentId + in: query + description: Specifies the id of the agent. Either AgentId and DeviceId or GroupName must be supplied. + schema: + type: string + - name: DeviceId + in: query + description: Specifies the id of the device. Either AgentId and DeviceId or GroupName must be supplied. + schema: + type: string + - name: GroupName + in: query + description: Specifies the group name. Either AgentId and DeviceId or GroupName must be supplied. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: 'Represents the device specific options such as customised local ui password details, and tracker performance settings.' + content: + application/json: + schema: + $ref: '#/components/schemas/GetDeviceSettingsResponse' + security: + - Bearer: [ ] + post: + tags: + - deviceSettings + summary: 'Gets the device settings for the device or group, based on the global device settings and any group specific overrides.' + description: 'Gets the device settings for the device or group, based on the global device settings and any group specific overrides.' + operationId: GetDeviceSettings_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetDeviceSettings' + x-bodyName: body + responses: + '200': + description: 'Represents the device specific options such as customised local ui password details, and tracker performance settings.' + content: + application/json: + schema: + $ref: '#/components/schemas/GetDeviceSettingsResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /events: + get: + tags: + - events + summary: Retrieves a list of events from the hub service. + description: Retrieves a list of events from the hub service. + operationId: GetEvents_Get + parameters: + - name: Comment + in: query + description: Gets or sets the query comment so that when slow / repeated queries are identified in the database we can trace them back to a specific query in the code more easily + schema: + type: string + - name: TimeZoneId + in: query + description: 'Gets or sets the user time zone id. Optional, if supplied the returned Events'' DateTimeLocal property is populated with a calculated equivalent local time based on the event DateTimeUtc.' + schema: + type: string + - name: DeviceFilter + in: query + description: 'Gets or sets the device selection, null implies all devices.' + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: EventFilter + in: query + description: 'Gets or sets the event selection, null implies all events.' + schema: + $ref: '#/components/schemas/EventFilter' + - name: StartUtc + in: query + description: ' Gets or sets the start of the period to return events for, null implies all.' + schema: + type: string + format: date-time + - name: EndUtc + in: query + description: 'Gets or sets the end of the period to return events for, null implies up to current time.' + schema: + type: string + format: date-time + - name: StartOffsetSeconds + in: query + description: If this is supplied then the StartUtc is going to based on a time this many seconds ago (to allow 'rolling' queries) + schema: + type: integer + format: int32 + - name: EndOffsetSeconds + in: query + description: If this is supplied then the EndUtc is going to be based on a time this many seconds ago (to allow 'rolling' queries) + schema: + type: integer + format: int32 + - name: Status + in: query + description: Only get events of a certain status + schema: + type: string + - name: TextSearch + in: query + description: Gets or sets the text search value. + schema: + type: string + - name: ReturnedEventType + in: query + description: ' Gets or sets the returned event type.' + schema: + enum: + - None + - DeviceEvent + - AlertEvent + - ErrorEvent + - AuditEvent + - RuleSetResultEvent + - RuleResultEvent + - DataResultsEvent + - ScheduledPolicyResultEvent + - RuleSetScoreEvent + - CommsEvent + - BaselineEvent + - GroupReportResultEvent + type: string + x-nullable: false + - name: EventId + in: query + description: Gets or sets the specific event id. + schema: + type: string + - name: ExcludeTotalCount + in: query + description: ' Gets or sets a value indicating whether to calculate the total count returned in the GetEventsResponse.Total' + schema: + type: boolean + x-nullable: false + - name: IncludeHistory + in: query + description: Gets or sets a value indicating wether or not to return event history with the events. + schema: + type: boolean + x-nullable: false + - name: RulesFromBaselinePolicyName + in: query + description: Gets or sets a value indicating wether or not to return event history with the events. + schema: + type: string + - name: ReturnAllEvents + in: query + description: 'Gets or sets a value indicating whether to populate the AllEvents list ' + schema: + type: boolean + x-nullable: false + - name: CountTimeMilliseconds + in: query + description: Gets or sets a value indicating how long to spend calculating a count of results before timing out. + schema: + type: number + format: double + - name: FormatDiffs + in: query + description: 'Gets or sets a value indicating whether to format the attribute text that contains process output content differences. ' + schema: + type: boolean + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The Events response. + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventsResponse' + security: + - Bearer: [ ] + post: + tags: + - events + summary: Retrieves a list of events from the hub service. + description: Retrieves a list of events from the hub service. + operationId: GetEvents_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetEvents' + x-bodyName: body + responses: + '200': + description: The Events response. + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventsResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + '/events/start/{StartUtc}': + get: + tags: + - events + summary: Retrieves a list of events from the hub service. + description: Retrieves a list of events from the hub service. + operationId: GetEventsstartStartUtc_Get + parameters: + - name: Comment + in: query + description: Gets or sets the query comment so that when slow / repeated queries are identified in the database we can trace them back to a specific query in the code more easily + schema: + type: string + - name: TimeZoneId + in: query + description: 'Gets or sets the user time zone id. Optional, if supplied the returned Events'' DateTimeLocal property is populated with a calculated equivalent local time based on the event DateTimeUtc.' + schema: + type: string + - name: DeviceFilter + in: query + description: 'Gets or sets the device selection, null implies all devices.' + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: EventFilter + in: query + description: 'Gets or sets the event selection, null implies all events.' + schema: + $ref: '#/components/schemas/EventFilter' + - name: StartUtc + in: query + description: ' Gets or sets the start of the period to return events for, null implies all.' + schema: + type: string + format: date-time + - name: EndUtc + in: query + description: 'Gets or sets the end of the period to return events for, null implies up to current time.' + schema: + type: string + format: date-time + - name: StartOffsetSeconds + in: query + description: If this is supplied then the StartUtc is going to based on a time this many seconds ago (to allow 'rolling' queries) + schema: + type: integer + format: int32 + - name: EndOffsetSeconds + in: query + description: If this is supplied then the EndUtc is going to be based on a time this many seconds ago (to allow 'rolling' queries) + schema: + type: integer + format: int32 + - name: Status + in: query + description: Only get events of a certain status + schema: + type: string + - name: TextSearch + in: query + description: Gets or sets the text search value. + schema: + type: string + - name: ReturnedEventType + in: query + description: ' Gets or sets the returned event type.' + schema: + enum: + - None + - DeviceEvent + - AlertEvent + - ErrorEvent + - AuditEvent + - RuleSetResultEvent + - RuleResultEvent + - DataResultsEvent + - ScheduledPolicyResultEvent + - RuleSetScoreEvent + - CommsEvent + - BaselineEvent + - GroupReportResultEvent + type: string + x-nullable: false + - name: EventId + in: query + description: Gets or sets the specific event id. + schema: + type: string + - name: ExcludeTotalCount + in: query + description: ' Gets or sets a value indicating whether to calculate the total count returned in the GetEventsResponse.Total' + schema: + type: boolean + x-nullable: false + - name: IncludeHistory + in: query + description: Gets or sets a value indicating wether or not to return event history with the events. + schema: + type: boolean + x-nullable: false + - name: RulesFromBaselinePolicyName + in: query + description: Gets or sets a value indicating wether or not to return event history with the events. + schema: + type: string + - name: ReturnAllEvents + in: query + description: 'Gets or sets a value indicating whether to populate the AllEvents list ' + schema: + type: boolean + x-nullable: false + - name: CountTimeMilliseconds + in: query + description: Gets or sets a value indicating how long to spend calculating a count of results before timing out. + schema: + type: number + format: double + - name: FormatDiffs + in: query + description: 'Gets or sets a value indicating whether to format the attribute text that contains process output content differences. ' + schema: + type: boolean + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The Events response. + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventsResponse' + security: + - Bearer: [ ] + post: + tags: + - events + summary: Retrieves a list of events from the hub service. + description: Retrieves a list of events from the hub service. + operationId: GetEventsstartStartUtc_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetEvents' + x-bodyName: body + responses: + '200': + description: The Events response. + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventsResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + '/events/end/{End}': + get: + tags: + - events + summary: Retrieves a list of events from the hub service. + description: Retrieves a list of events from the hub service. + operationId: GetEventsendEnd_Get + parameters: + - name: Comment + in: query + description: Gets or sets the query comment so that when slow / repeated queries are identified in the database we can trace them back to a specific query in the code more easily + schema: + type: string + - name: TimeZoneId + in: query + description: 'Gets or sets the user time zone id. Optional, if supplied the returned Events'' DateTimeLocal property is populated with a calculated equivalent local time based on the event DateTimeUtc.' + schema: + type: string + - name: DeviceFilter + in: query + description: 'Gets or sets the device selection, null implies all devices.' + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: EventFilter + in: query + description: 'Gets or sets the event selection, null implies all events.' + schema: + $ref: '#/components/schemas/EventFilter' + - name: StartUtc + in: query + description: ' Gets or sets the start of the period to return events for, null implies all.' + schema: + type: string + format: date-time + - name: EndUtc + in: query + description: 'Gets or sets the end of the period to return events for, null implies up to current time.' + schema: + type: string + format: date-time + - name: StartOffsetSeconds + in: query + description: If this is supplied then the StartUtc is going to based on a time this many seconds ago (to allow 'rolling' queries) + schema: + type: integer + format: int32 + - name: EndOffsetSeconds + in: query + description: If this is supplied then the EndUtc is going to be based on a time this many seconds ago (to allow 'rolling' queries) + schema: + type: integer + format: int32 + - name: Status + in: query + description: Only get events of a certain status + schema: + type: string + - name: TextSearch + in: query + description: Gets or sets the text search value. + schema: + type: string + - name: ReturnedEventType + in: query + description: ' Gets or sets the returned event type.' + schema: + enum: + - None + - DeviceEvent + - AlertEvent + - ErrorEvent + - AuditEvent + - RuleSetResultEvent + - RuleResultEvent + - DataResultsEvent + - ScheduledPolicyResultEvent + - RuleSetScoreEvent + - CommsEvent + - BaselineEvent + - GroupReportResultEvent + type: string + x-nullable: false + - name: EventId + in: query + description: Gets or sets the specific event id. + schema: + type: string + - name: ExcludeTotalCount + in: query + description: ' Gets or sets a value indicating whether to calculate the total count returned in the GetEventsResponse.Total' + schema: + type: boolean + x-nullable: false + - name: IncludeHistory + in: query + description: Gets or sets a value indicating wether or not to return event history with the events. + schema: + type: boolean + x-nullable: false + - name: RulesFromBaselinePolicyName + in: query + description: Gets or sets a value indicating wether or not to return event history with the events. + schema: + type: string + - name: ReturnAllEvents + in: query + description: 'Gets or sets a value indicating whether to populate the AllEvents list ' + schema: + type: boolean + x-nullable: false + - name: CountTimeMilliseconds + in: query + description: Gets or sets a value indicating how long to spend calculating a count of results before timing out. + schema: + type: number + format: double + - name: FormatDiffs + in: query + description: 'Gets or sets a value indicating whether to format the attribute text that contains process output content differences. ' + schema: + type: boolean + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The Events response. + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventsResponse' + security: + - Bearer: [ ] + post: + tags: + - events + summary: Retrieves a list of events from the hub service. + description: Retrieves a list of events from the hub service. + operationId: GetEventsendEnd_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetEvents' + x-bodyName: body + responses: + '200': + description: The Events response. + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventsResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + '/events/start/{StartUtc}/end/{End}': + get: + tags: + - events + summary: Retrieves a list of events from the hub service. + description: Retrieves a list of events from the hub service. + operationId: GetEventsstartStartUtcendEnd_Get + parameters: + - name: Comment + in: query + description: Gets or sets the query comment so that when slow / repeated queries are identified in the database we can trace them back to a specific query in the code more easily + schema: + type: string + - name: TimeZoneId + in: query + description: 'Gets or sets the user time zone id. Optional, if supplied the returned Events'' DateTimeLocal property is populated with a calculated equivalent local time based on the event DateTimeUtc.' + schema: + type: string + - name: DeviceFilter + in: query + description: 'Gets or sets the device selection, null implies all devices.' + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: EventFilter + in: query + description: 'Gets or sets the event selection, null implies all events.' + schema: + $ref: '#/components/schemas/EventFilter' + - name: StartUtc + in: query + description: ' Gets or sets the start of the period to return events for, null implies all.' + schema: + type: string + format: date-time + - name: EndUtc + in: query + description: 'Gets or sets the end of the period to return events for, null implies up to current time.' + schema: + type: string + format: date-time + - name: StartOffsetSeconds + in: query + description: If this is supplied then the StartUtc is going to based on a time this many seconds ago (to allow 'rolling' queries) + schema: + type: integer + format: int32 + - name: EndOffsetSeconds + in: query + description: If this is supplied then the EndUtc is going to be based on a time this many seconds ago (to allow 'rolling' queries) + schema: + type: integer + format: int32 + - name: Status + in: query + description: Only get events of a certain status + schema: + type: string + - name: TextSearch + in: query + description: Gets or sets the text search value. + schema: + type: string + - name: ReturnedEventType + in: query + description: ' Gets or sets the returned event type.' + schema: + enum: + - None + - DeviceEvent + - AlertEvent + - ErrorEvent + - AuditEvent + - RuleSetResultEvent + - RuleResultEvent + - DataResultsEvent + - ScheduledPolicyResultEvent + - RuleSetScoreEvent + - CommsEvent + - BaselineEvent + - GroupReportResultEvent + type: string + x-nullable: false + - name: EventId + in: query + description: Gets or sets the specific event id. + schema: + type: string + - name: ExcludeTotalCount + in: query + description: ' Gets or sets a value indicating whether to calculate the total count returned in the GetEventsResponse.Total' + schema: + type: boolean + x-nullable: false + - name: IncludeHistory + in: query + description: Gets or sets a value indicating wether or not to return event history with the events. + schema: + type: boolean + x-nullable: false + - name: RulesFromBaselinePolicyName + in: query + description: Gets or sets a value indicating wether or not to return event history with the events. + schema: + type: string + - name: ReturnAllEvents + in: query + description: 'Gets or sets a value indicating whether to populate the AllEvents list ' + schema: + type: boolean + x-nullable: false + - name: CountTimeMilliseconds + in: query + description: Gets or sets a value indicating how long to spend calculating a count of results before timing out. + schema: + type: number + format: double + - name: FormatDiffs + in: query + description: 'Gets or sets a value indicating whether to format the attribute text that contains process output content differences. ' + schema: + type: boolean + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The Events response. + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventsResponse' + security: + - Bearer: [ ] + post: + tags: + - events + summary: Retrieves a list of events from the hub service. + description: Retrieves a list of events from the hub service. + operationId: GetEventsstartStartUtcendEnd_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetEvents' + x-bodyName: body + responses: + '200': + description: The Events response. + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventsResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + '/events/skip/{Skip}/take/{Take}': + get: + tags: + - events + summary: Retrieves a list of events from the hub service. + description: Retrieves a list of events from the hub service. + operationId: GetEventsskipSkiptakeTake_Get + parameters: + - name: Comment + in: query + description: Gets or sets the query comment so that when slow / repeated queries are identified in the database we can trace them back to a specific query in the code more easily + schema: + type: string + - name: TimeZoneId + in: query + description: 'Gets or sets the user time zone id. Optional, if supplied the returned Events'' DateTimeLocal property is populated with a calculated equivalent local time based on the event DateTimeUtc.' + schema: + type: string + - name: DeviceFilter + in: query + description: 'Gets or sets the device selection, null implies all devices.' + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: EventFilter + in: query + description: 'Gets or sets the event selection, null implies all events.' + schema: + $ref: '#/components/schemas/EventFilter' + - name: StartUtc + in: query + description: ' Gets or sets the start of the period to return events for, null implies all.' + schema: + type: string + format: date-time + - name: EndUtc + in: query + description: 'Gets or sets the end of the period to return events for, null implies up to current time.' + schema: + type: string + format: date-time + - name: StartOffsetSeconds + in: query + description: If this is supplied then the StartUtc is going to based on a time this many seconds ago (to allow 'rolling' queries) + schema: + type: integer + format: int32 + - name: EndOffsetSeconds + in: query + description: If this is supplied then the EndUtc is going to be based on a time this many seconds ago (to allow 'rolling' queries) + schema: + type: integer + format: int32 + - name: Status + in: query + description: Only get events of a certain status + schema: + type: string + - name: TextSearch + in: query + description: Gets or sets the text search value. + schema: + type: string + - name: ReturnedEventType + in: query + description: ' Gets or sets the returned event type.' + schema: + enum: + - None + - DeviceEvent + - AlertEvent + - ErrorEvent + - AuditEvent + - RuleSetResultEvent + - RuleResultEvent + - DataResultsEvent + - ScheduledPolicyResultEvent + - RuleSetScoreEvent + - CommsEvent + - BaselineEvent + - GroupReportResultEvent + type: string + x-nullable: false + - name: EventId + in: query + description: Gets or sets the specific event id. + schema: + type: string + - name: ExcludeTotalCount + in: query + description: ' Gets or sets a value indicating whether to calculate the total count returned in the GetEventsResponse.Total' + schema: + type: boolean + x-nullable: false + - name: IncludeHistory + in: query + description: Gets or sets a value indicating wether or not to return event history with the events. + schema: + type: boolean + x-nullable: false + - name: RulesFromBaselinePolicyName + in: query + description: Gets or sets a value indicating wether or not to return event history with the events. + schema: + type: string + - name: ReturnAllEvents + in: query + description: 'Gets or sets a value indicating whether to populate the AllEvents list ' + schema: + type: boolean + x-nullable: false + - name: CountTimeMilliseconds + in: query + description: Gets or sets a value indicating how long to spend calculating a count of results before timing out. + schema: + type: number + format: double + - name: FormatDiffs + in: query + description: 'Gets or sets a value indicating whether to format the attribute text that contains process output content differences. ' + schema: + type: boolean + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The Events response. + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventsResponse' + security: + - Bearer: [ ] + post: + tags: + - events + summary: Retrieves a list of events from the hub service. + description: Retrieves a list of events from the hub service. + operationId: GetEventsskipSkiptakeTake_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetEvents' + x-bodyName: body + responses: + '200': + description: The Events response. + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventsResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + '/events/{EventId}': + get: + tags: + - events + summary: Retrieves a list of events from the hub service. + description: Retrieves a list of events from the hub service. + operationId: GetEventsEventId_Get + parameters: + - name: Comment + in: query + description: Gets or sets the query comment so that when slow / repeated queries are identified in the database we can trace them back to a specific query in the code more easily + schema: + type: string + - name: TimeZoneId + in: query + description: 'Gets or sets the user time zone id. Optional, if supplied the returned Events'' DateTimeLocal property is populated with a calculated equivalent local time based on the event DateTimeUtc.' + schema: + type: string + - name: DeviceFilter + in: query + description: 'Gets or sets the device selection, null implies all devices.' + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: EventFilter + in: query + description: 'Gets or sets the event selection, null implies all events.' + schema: + $ref: '#/components/schemas/EventFilter' + - name: StartUtc + in: query + description: ' Gets or sets the start of the period to return events for, null implies all.' + schema: + type: string + format: date-time + - name: EndUtc + in: query + description: 'Gets or sets the end of the period to return events for, null implies up to current time.' + schema: + type: string + format: date-time + - name: StartOffsetSeconds + in: query + description: If this is supplied then the StartUtc is going to based on a time this many seconds ago (to allow 'rolling' queries) + schema: + type: integer + format: int32 + - name: EndOffsetSeconds + in: query + description: If this is supplied then the EndUtc is going to be based on a time this many seconds ago (to allow 'rolling' queries) + schema: + type: integer + format: int32 + - name: Status + in: query + description: Only get events of a certain status + schema: + type: string + - name: TextSearch + in: query + description: Gets or sets the text search value. + schema: + type: string + - name: ReturnedEventType + in: query + description: ' Gets or sets the returned event type.' + schema: + enum: + - None + - DeviceEvent + - AlertEvent + - ErrorEvent + - AuditEvent + - RuleSetResultEvent + - RuleResultEvent + - DataResultsEvent + - ScheduledPolicyResultEvent + - RuleSetScoreEvent + - CommsEvent + - BaselineEvent + - GroupReportResultEvent + type: string + x-nullable: false + - name: EventId + in: query + description: Gets or sets the specific event id. + schema: + type: string + - name: ExcludeTotalCount + in: query + description: ' Gets or sets a value indicating whether to calculate the total count returned in the GetEventsResponse.Total' + schema: + type: boolean + x-nullable: false + - name: IncludeHistory + in: query + description: Gets or sets a value indicating wether or not to return event history with the events. + schema: + type: boolean + x-nullable: false + - name: RulesFromBaselinePolicyName + in: query + description: Gets or sets a value indicating wether or not to return event history with the events. + schema: + type: string + - name: ReturnAllEvents + in: query + description: 'Gets or sets a value indicating whether to populate the AllEvents list ' + schema: + type: boolean + x-nullable: false + - name: CountTimeMilliseconds + in: query + description: Gets or sets a value indicating how long to spend calculating a count of results before timing out. + schema: + type: number + format: double + - name: FormatDiffs + in: query + description: 'Gets or sets a value indicating whether to format the attribute text that contains process output content differences. ' + schema: + type: boolean + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The Events response. + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventsResponse' + security: + - Bearer: [ ] + post: + tags: + - events + summary: Retrieves a list of events from the hub service. + description: Retrieves a list of events from the hub service. + operationId: GetEventsEventId_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetEvents' + x-bodyName: body + responses: + '200': + description: The Events response. + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventsResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /alertEvents/add: + get: + tags: + - alertEvents + summary: Adds a list of alert events to the system. + description: Adds a list of alert events to the system. + operationId: SubmitAlertEventsadd_Get + parameters: + - name: Events + in: query + description: Specifies the list of alert events for the hub to process. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/AlertEvent' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] + post: + tags: + - alertEvents + summary: Adds a list of alert events to the system. + description: Adds a list of alert events to the system. + operationId: SubmitAlertEventsadd_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SubmitAlertEvents' + x-bodyName: body + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /alertEvents/limitedAdd: + get: + tags: + - alertEvents + summary: Adds a list of alert events to the system. The response can indicate a rate-limiting back off time. + description: Adds a list of alert events to the system. The response can indicate a rate-limiting back off time. + operationId: SubmitAlertEventsLimitedlimitedAdd_Get + parameters: + - name: Events + in: query + description: Specifies the list of alert events for the hub to process. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/AlertEvent' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/SubmitAlertEventsLimitedResponse' + security: + - Bearer: [ ] + post: + tags: + - alertEvents + summary: Adds a list of alert events to the system. The response can indicate a rate-limiting back off time. + description: Adds a list of alert events to the system. The response can indicate a rate-limiting back off time. + operationId: SubmitAlertEventsLimitedlimitedAdd_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SubmitAlertEventsLimited' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/SubmitAlertEventsLimitedResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /baselineEvents/add: + get: + tags: + - baselineEvents + summary: Adds a list of baseline events to the system. + description: Adds a list of baseline events to the system. + operationId: SubmitBaselineEventsadd_Get + parameters: + - name: Events + in: query + description: Specifies the list of baseline events for the hub to process. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/BaselineEvent' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] + post: + tags: + - baselineEvents + summary: Adds a list of baseline events to the system. + description: Adds a list of baseline events to the system. + operationId: SubmitBaselineEventsadd_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SubmitBaselineEvents' + x-bodyName: body + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /baselineEvents/limitedAdd: + get: + tags: + - baselineEvents + summary: Adds a list of baseline events to the system. The response can indicate a rate-limiting back off time. + description: Adds a list of baseline events to the system. The response can indicate a rate-limiting back off time. + operationId: SubmitBaselineEventsLimitedlimitedAdd_Get + parameters: + - name: Events + in: query + description: Specifies the list of baseline events for the hub to process. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/BaselineEvent' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/SubmitBaselineEventsLimitedResponse' + security: + - Bearer: [ ] + post: + tags: + - baselineEvents + summary: Adds a list of baseline events to the system. The response can indicate a rate-limiting back off time. + description: Adds a list of baseline events to the system. The response can indicate a rate-limiting back off time. + operationId: SubmitBaselineEventsLimitedlimitedAdd_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SubmitBaselineEventsLimited' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/SubmitBaselineEventsLimitedResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /deviceEvents/add: + get: + tags: + - deviceEvents + summary: Adds a list of device change events to the system. + description: Adds a list of device change events to the system. + operationId: SubmitDeviceEventsadd_Get + parameters: + - name: Events + in: query + description: Specifies the list of device events for the hub to process. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/DeviceEvent' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] + post: + tags: + - deviceEvents + summary: Adds a list of device change events to the system. + description: Adds a list of device change events to the system. + operationId: SubmitDeviceEventsadd_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SubmitDeviceEvents' + x-bodyName: body + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /deviceEvents/limitedAdd: + get: + tags: + - deviceEvents + summary: Adds a list of device change events to the system. The response can indicate a rate-limiting back off time. + description: Adds a list of device change events to the system. The response can indicate a rate-limiting back off time. + operationId: SubmitDeviceEventsLimitedlimitedAdd_Get + parameters: + - name: Events + in: query + description: Specifies the list of device events for the hub to process. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/DeviceEvent' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/SubmitDeviceEventsLimitedResponse' + security: + - Bearer: [ ] + post: + tags: + - deviceEvents + summary: Adds a list of device change events to the system. The response can indicate a rate-limiting back off time. + description: Adds a list of device change events to the system. The response can indicate a rate-limiting back off time. + operationId: SubmitDeviceEventsLimitedlimitedAdd_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SubmitDeviceEventsLimited' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/SubmitDeviceEventsLimitedResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /status/ready: + get: + tags: + - status + summary: Gets whether system is booted and ready for login. + description: Gets whether system is booted and ready for login. + operationId: SystemReadyready_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Indicates if system is booted and ready for login. + content: + application/json: + schema: + $ref: '#/components/schemas/SystemReadyResponse' + post: + tags: + - status + summary: Gets whether system is booted and ready for login. + description: Gets whether system is booted and ready for login. + operationId: SystemReadyready_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SystemReady' + x-bodyName: body + responses: + '200': + description: Indicates if system is booted and ready for login. + content: + application/json: + schema: + $ref: '#/components/schemas/SystemReadyResponse' + parameters: + - $ref: '#/components/parameters/Accept' + /status/system: + get: + tags: + - status + summary: Gets system version and config settings once logged in. + description: Gets system version and config settings once logged in. + operationId: SystemDetailssystem_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: System version and config settings. + content: + application/json: + schema: + $ref: '#/components/schemas/SystemDetailsResponse' + security: + - Bearer: [ ] + post: + tags: + - status + summary: Gets system version and config settings once logged in. + description: Gets system version and config settings once logged in. + operationId: SystemDetailssystem_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SystemDetails' + x-bodyName: body + responses: + '200': + description: System version and config settings. + content: + application/json: + schema: + $ref: '#/components/schemas/SystemDetailsResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /status/backgroundtasks: + get: + tags: + - status + summary: 'Retrieves a list of background, potentially long-running, tasks the hub has performed and their associated status.' + description: 'Retrieves a list of background, potentially long-running, tasks the hub has performed and their associated status.' + operationId: GetBackgroundTaskStatusesbackgroundtasks_Get + parameters: + - name: UserName + in: query + description: 'Specifies a specific user name to retrieve tasks for (Optional, but only Admin users can retrieve tasks for other users or internal system tasks).' + schema: + type: string + - name: StartDateTimeUtc + in: query + description: Specifies the start time (in UTC) for a task to be retrieved (Optional). + schema: + type: string + format: date-time + - name: EndDateTimeUtc + in: query + description: Specifies the end time (in UTC) for a task to be retrieved (Optional). + schema: + type: string + format: date-time + - name: Statuses + in: query + description: Specifies the status of tasks to be retrieved (Optional). + style: form + schema: + type: array + items: + type: string + x-nullable: false + - name: TaskIds + in: query + description: Specifies a list of specific task ids to retrieved (Optional). + style: form + schema: + type: array + items: + type: string + - name: TaskTypes + in: query + description: Specifies a list of specific task types to be retrieved (Optional). + style: form + schema: + type: array + items: + type: string + - name: IncludeDependentTasks + in: query + description: Specifies whether to return the tasks that each task depends on in its DependentTasks property (Optional). + schema: + type: boolean + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: List + type: array + items: + $ref: '#/components/schemas/BackgroundTaskDetails' + security: + - Bearer: [ ] + post: + tags: + - status + summary: 'Retrieves a list of background, potentially long-running, tasks the hub has performed and their associated status.' + description: 'Retrieves a list of background, potentially long-running, tasks the hub has performed and their associated status.' + operationId: GetBackgroundTaskStatusesbackgroundtasks_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetBackgroundTaskStatuses' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + title: List + type: array + items: + $ref: '#/components/schemas/BackgroundTaskDetails' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /status/eventsOnIncomingQueue: + get: + tags: + - status + summary: Gets the number of events currently in the processing queue. + description: Gets the number of events currently in the processing queue. + operationId: EventsOnIncomingQueueeventsOnIncomingQueue_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: string + type: integer + format: int32 + security: + - Bearer: [ ] + post: + tags: + - status + summary: Gets the number of events currently in the processing queue. + description: Gets the number of events currently in the processing queue. + operationId: EventsOnIncomingQueueeventsOnIncomingQueue_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/EventsOnIncomingQueue' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + title: string + type: integer + format: int32 + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /status/messageStatus: + get: + tags: + - status + summary: 'Returns the number of internal event notification messages received, processed or failed.' + description: 'Returns the number of internal event notification messages received, processed or failed.' + operationId: EventMessageStatusmessageStatus_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: 'Dictionary' + content: + application/json: + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + security: + - Bearer: [ ] + post: + tags: + - status + summary: 'Returns the number of internal event notification messages received, processed or failed.' + description: 'Returns the number of internal event notification messages received, processed or failed.' + operationId: EventMessageStatusmessageStatus_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/EventMessageStatus' + x-bodyName: body + responses: + '200': + description: 'Dictionary' + content: + application/json: + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /status/pipeline: + get: + tags: + - status + summary: 'Gets the pipeline status, returning a dictionary of pipeline components and their current status.' + description: 'Gets the pipeline status, returning a dictionary of pipeline components and their current status.' + operationId: GetPipelineStatuspipeline_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: 'Dictionary' + content: + application/json: + schema: + title: 'Dictionary' + type: object + additionalProperties: + enum: + - Unknown + - Starting + - Up + - Stopping + - Down + - Busy + - Fault + - RequiresUpgrade + type: string + description: 'Dictionary' + security: + - Bearer: [ ] + post: + tags: + - status + summary: 'Gets the pipeline status, returning a dictionary of pipeline components and their current status.' + description: 'Gets the pipeline status, returning a dictionary of pipeline components and their current status.' + operationId: GetPipelineStatuspipeline_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetPipelineStatus' + x-bodyName: body + responses: + '200': + description: 'Dictionary' + content: + application/json: + schema: + title: 'Dictionary' + type: object + additionalProperties: + enum: + - Unknown + - Starting + - Up + - Stopping + - Down + - Busy + - Fault + - RequiresUpgrade + type: string + description: 'Dictionary' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /status/pipelineMetrics: + get: + tags: + - status + summary: Gets system performance metrics. + description: Gets system performance metrics. + operationId: GetPipelineMetricspipelineMetrics_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: List + type: array + items: + $ref: '#/components/schemas/PerformanceSnapshot' + security: + - Bearer: [ ] + post: + tags: + - status + summary: Gets system performance metrics. + description: Gets system performance metrics. + operationId: GetPipelineMetricspipelineMetrics_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetPipelineMetrics' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + title: List + type: array + items: + $ref: '#/components/schemas/PerformanceSnapshot' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /status/workload: + get: + tags: + - status + summary: Returns the pipeline workload. + description: Returns the pipeline workload. + operationId: GetWorkloadStatsworkload_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: 'Dictionary' + content: + application/json: + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: number + format: double + x-nullable: false + description: 'Dictionary' + security: + - Bearer: [ ] + post: + tags: + - status + summary: Returns the pipeline workload. + description: Returns the pipeline workload. + operationId: GetWorkloadStatsworkload_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetWorkloadStats' + x-bodyName: body + responses: + '200': + description: 'Dictionary' + content: + application/json: + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: number + format: double + x-nullable: false + description: 'Dictionary' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /status/cache: + get: + tags: + - status + summary: Returns the cache statistics. + description: Returns the cache statistics. + operationId: GetCacheStatscache_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The cache statistics. + content: + application/json: + schema: + $ref: '#/components/schemas/GetCacheStatsResponse' + security: + - Bearer: [ ] + post: + tags: + - status + summary: Returns the cache statistics. + description: Returns the cache statistics. + operationId: GetCacheStatscache_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetCacheStats' + x-bodyName: body + responses: + '200': + description: The cache statistics. + content: + application/json: + schema: + $ref: '#/components/schemas/GetCacheStatsResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /openapi3.yaml: + get: + tags: + - openapi3.yaml + operationId: GetOpenApi3Yaml_Get + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/Object' + parameters: + - $ref: '#/components/parameters/Accept' + /reports/availableTypes: + get: + tags: + - reports + summary: Report Service + description: Report Service + operationId: GetAvailableReportTypesavailableTypes_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetAvailableReportTypesResponse' + security: + - Bearer: [ ] + post: + tags: + - reports + summary: Report Service + description: Report Service + operationId: GetAvailableReportTypesavailableTypes_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetAvailableReportTypes' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetAvailableReportTypesResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /reports/template: + get: + tags: + - reports + summary: Report Service + description: Report Service + operationId: GetReportTemplatetemplate_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: String + type: string + security: + - Bearer: [ ] + post: + tags: + - reports + summary: Report Service + description: Report Service + operationId: GetReportTemplatetemplate_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetReportTemplate' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + title: String + type: string + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /reports/templates: + get: + tags: + - reports + summary: Report Service + description: Report Service + operationId: GetReportTemplatestemplates_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetReportTemplatesResponse' + security: + - Bearer: [ ] + post: + tags: + - reports + summary: Report Service + description: Report Service + operationId: GetReportTemplatestemplates_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetReportTemplates' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetReportTemplatesResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /reports/scheduled: + get: + tags: + - reports + summary: Report Service + description: Report Service + operationId: GetScheduledReportsscheduled_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: 'The response to requests to add, query or update scheduled reports, listing the new states of the reports affected' + content: + application/json: + schema: + $ref: '#/components/schemas/GetScheduledReportsResponse' + security: + - Bearer: [ ] + post: + tags: + - reports + summary: Report Service + description: Report Service + operationId: GetScheduledReportsscheduled_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetScheduledReports' + x-bodyName: body + responses: + '200': + description: 'The response to requests to add, query or update scheduled reports, listing the new states of the reports affected' + content: + application/json: + schema: + $ref: '#/components/schemas/GetScheduledReportsResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /reports/updatetemplate: + get: + tags: + - reports + summary: Report Service + description: Report Service + operationId: UpdateReportTemplateupdatetemplate_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateReportTemplateResponse' + security: + - Bearer: [ ] + post: + tags: + - reports + summary: Report Service + description: Report Service + operationId: UpdateReportTemplateupdatetemplate_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateReportTemplate' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateReportTemplateResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /reports/uploadreporttemplate: + post: + tags: + - reports + summary: Report Service + description: Report Service + operationId: UploadReportTemplateuploadreporttemplate_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UploadReportTemplate' + x-bodyName: body + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /reports/deletecustomreporttemplate: + get: + tags: + - reports + summary: Deletes a report layout template of the specified type and name + description: Deletes a report layout template of the specified type and name + operationId: DeleteCustomReportTemplatedeletecustomreporttemplate_Get + parameters: + - name: ReportTemplateType + in: query + description: Gets or sets the ReportTemplateType of the report template to delete. + required: true + schema: + enum: + - None + - ErrorReport + - AggregateReportTemplate + - EventsReport + - PlannedChangeReport + - TrackingTemplateReport + - ExecutiveSummaryReport + - ComplianceReport + - DeviceReport + - ScheduledItemsReport + - VulnerabilitySummaryReport + type: string + x-nullable: false + - name: TemplateName + in: query + description: Gets or sets the name of the report template to delete. + required: true + schema: + type: string + - name: TemplateVersion + in: query + description: Gets or sets the version of the report template to delete. + required: true + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] + post: + tags: + - reports + summary: Deletes a report layout template of the specified type and name + description: Deletes a report layout template of the specified type and name + operationId: DeleteCustomReportTemplatedeletecustomreporttemplate_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DeleteCustomReportTemplate' + x-bodyName: body + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /reports/devicemonitoring: + get: + tags: + - reports + summary: A request to gets the data for a device monitoring report + description: A request to gets the data for a device monitoring report + operationId: DataSpecDeviceMonitoringReportdevicemonitoring_Get + parameters: + - name: DateRange + in: query + description: Provides information about how to calculate the start and end dates when performing the query + required: true + schema: + $ref: '#/components/schemas/ReportDateRange' + - name: OnlineStatuses + in: query + description: Gets or sets the online statuses of the devices to return. Optional. + style: form + schema: + type: array + items: + type: string + x-nullable: false + - name: DeviceFilter + in: query + description: 'Gets or sets the device selection, null implies all devices.' + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: Id + in: query + description: Specifies the Id of the data query specification + schema: + type: string + - name: Type + in: query + description: The Type name of the data query specification + schema: + type: string + - name: IteratorValues + in: query + description: 'Used to specify the list of items to report on, for data query specifications that support this. If this is not supplied, SelectionQuery can be used to specify a query to be performed to find the list of ids to report on' + style: form + schema: + type: array + items: + type: string + - name: SelectionQuery + in: query + description: 'The SelectionQuery is an alternative to supplying a list of values to report on in IteratorValues. It can be used to represent a query such as ''find Planned Change Instances where the name starts with XYZ'', returning a set of Planned Change Instance ids to report on.' + schema: + $ref: '#/components/schemas/SelectionQuery' + - name: Groups + in: query + description: Specifies the Groups (and implicitly and child groups) to be reported on in the report. + style: form + schema: + type: array + items: + type: string + - name: ItemName + in: query + description: 'Specifies the descriptive name of the result item, for example ''report'', ''planned change'', ''event'' etc.' + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The returned data for populating a device monitoring report + content: + application/json: + schema: + $ref: '#/components/schemas/DataSpecDeviceMonitoringReportResponse' + security: + - Bearer: [ ] + post: + tags: + - reports + summary: A request to gets the data for a device monitoring report + description: A request to gets the data for a device monitoring report + operationId: DataSpecDeviceMonitoringReportdevicemonitoring_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DataSpecDeviceMonitoringReport' + x-bodyName: body + responses: + '200': + description: The returned data for populating a device monitoring report + content: + application/json: + schema: + $ref: '#/components/schemas/DataSpecDeviceMonitoringReportResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /reports/ruleresults: + get: + tags: + - reports + operationId: GetRuleResultsruleresults_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetRuleResultsResponse' + security: + - Bearer: [ ] + post: + tags: + - reports + operationId: GetRuleResultsruleresults_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetRuleResults' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetRuleResultsResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /stats/compliancesummarydata: + get: + tags: + - stats + operationId: GetComplianceReportSummaryDatacompliancesummarydata_Get + parameters: + - name: ReportItemId + in: query + description: Specifies the scheduled report item id. + required: true + schema: + type: string + - name: ReportInstanceId + in: query + description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. + required: true + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ComplianceReportSummaryResponse' + security: + - Bearer: [ ] + post: + tags: + - stats + operationId: GetComplianceReportSummaryDatacompliancesummarydata_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetComplianceReportSummaryData' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ComplianceReportSummaryResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /stats/plannedChanges: + get: + tags: + - stats + summary: Stats Service + description: Stats Service + operationId: GetCurrentPlannedChangesplannedChanges_Get + parameters: + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetCurrentPlannedChangesResponse' + security: + - Bearer: [ ] + post: + tags: + - stats + summary: Stats Service + description: Stats Service + operationId: GetCurrentPlannedChangesplannedChanges_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetCurrentPlannedChanges' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetCurrentPlannedChangesResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /stats/compliancedata: + get: + tags: + - stats + summary: 'Get report summaries by report, for either individual devices, or as group average.' + description: 'Get report summaries by report, for either individual devices, or as group average.' + operationId: GetComplianceDatacompliancedata_Get + parameters: + - name: ReportItemId + in: query + description: Specifies the scheduled report item id. + required: true + schema: + type: string + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: 'Compliance data by report, for either individual devices, or as group average.' + content: + application/json: + schema: + $ref: '#/components/schemas/GetComplianceDataResponse' + security: + - Bearer: [ ] + post: + tags: + - stats + summary: 'Get report summaries by report, for either individual devices, or as group average.' + description: 'Get report summaries by report, for either individual devices, or as group average.' + operationId: GetComplianceDatacompliancedata_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetComplianceData' + x-bodyName: body + responses: + '200': + description: 'Compliance data by report, for either individual devices, or as group average.' + content: + application/json: + schema: + $ref: '#/components/schemas/GetComplianceDataResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /stats/getavailablecompliancedata: + get: + tags: + - stats + summary: Get a list of groups or devices that have report data available for them + description: Get a list of groups or devices that have report data available for them + operationId: GetAvailableComplianceDatagetavailablecompliancedata_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetAvailableComplianceDataResponse' + security: + - Bearer: [ ] + post: + tags: + - stats + summary: Get a list of groups or devices that have report data available for them + description: Get a list of groups or devices that have report data available for them + operationId: GetAvailableComplianceDatagetavailablecompliancedata_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetAvailableComplianceData' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetAvailableComplianceDataResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /stats/deviceActivity: + get: + tags: + - stats + summary: Gets a list of inactive devices matching the filter. + description: Gets a list of inactive devices matching the filter. + operationId: GetDeviceActivitydeviceActivity_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Represents the list of devices matching the request criteria that have been inactive in the specified period. + content: + application/json: + schema: + $ref: '#/components/schemas/GetDeviceActivityResponse' + security: + - Bearer: [ ] + post: + tags: + - stats + summary: Gets a list of inactive devices matching the filter. + description: Gets a list of inactive devices matching the filter. + operationId: GetDeviceActivitydeviceActivity_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetDeviceActivity' + x-bodyName: body + responses: + '200': + description: Represents the list of devices matching the request criteria that have been inactive in the specified period. + content: + application/json: + schema: + $ref: '#/components/schemas/GetDeviceActivityResponse' + security: + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /deviceSettings: + - $ref: '#/components/parameters/Accept' + /stats/events: get: tags: - - deviceSettings - summary: Gets the device settings for the device or group, based on the global device settings and any group specific overrides. - description: Gets the device settings for the device or group, based on the global device settings and any group specific overrides. - operationId: GetDeviceSettings_Get + - stats + summary: 'Gets a summary of event counts for the devices or groups specified by the DeviceFilter, for the specified time period.' + description: 'Gets a summary of event counts for the devices or groups specified by the DeviceFilter, for the specified time period.' + operationId: GetEventCountsevents_Get parameters: - - name: AgentId - in: query - description: Specifies the id of the agent. Either AgentId and DeviceId or GroupName must be supplied. - schema: - type: string - - name: DeviceId - in: query - description: Specifies the id of the device. Either AgentId and DeviceId or GroupName must be supplied. - schema: - type: string - - name: GroupName - in: query - description: Specifies the group name. Either AgentId and DeviceId or GroupName must be supplied. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Represents the device specific options such as customised local ui password details, and tracker performance settings. + description: 'Represents a summary of event counts for the devices or groups specified by the DeviceFilter, for the specified time period.' content: application/json: schema: - $ref: '#/components/schemas/GetDeviceSettingsResponse' + $ref: '#/components/schemas/GetEventCountsResponse' + security: + - Bearer: [ ] + post: + tags: + - stats + summary: 'Gets a summary of event counts for the devices or groups specified by the DeviceFilter, for the specified time period.' + description: 'Gets a summary of event counts for the devices or groups specified by the DeviceFilter, for the specified time period.' + operationId: GetEventCountsevents_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetEventCounts' + x-bodyName: body + responses: + '200': + description: 'Represents a summary of event counts for the devices or groups specified by the DeviceFilter, for the specified time period.' + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventCountsResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /events: + - $ref: '#/components/parameters/Accept' + /stats/noisydevices: get: tags: - - events - summary: Retrieves a list of events from the hub service - description: Retrieves a list of events from the hub service. - operationId: GetEvents_Get + - stats + summary: 'Gets a summary of event counts for top N noisiest devices in the specified group, for the specified time period.' + description: 'Gets a summary of event counts for top N noisiest devices in the specified group, for the specified time period.' + operationId: GetNoisyDevicesnoisydevices_Get parameters: - - name: Comment - in: query - description: Gets or sets the query comment so that when slow / repeated queries are identified in the database we can trace them back to a specific query in the code more easily - schema: - type: string - - name: TimeZoneId - in: query - description: Gets or sets the user time zone id. Optional, if supplied the returned Events' DateTimeLocal property is populated with a calculated equivalent local time based on the event DateTimeUtc. - schema: - type: string - - name: DeviceFilter - in: query - description: Gets or sets the device selection, null implies all devices. - schema: - $ref: '#/components/schemas/DeviceFilter' - - name: EventFilter - in: query - description: Gets or sets the event selection, null implies all events. - schema: - $ref: '#/components/schemas/EventFilter' - - name: StartUtc - in: query - description: ' Gets or sets the start of the period to return events for, null implies all.' - schema: - type: string - format: date-time - - name: EndUtc - in: query - description: Gets or sets the end of the period to return events for, null implies up to current time. - schema: - type: string - format: date-time - - name: StartOffsetSeconds - in: query - description: If this is supplied then the StartUtc is going to based on a time this many seconds ago (to allow 'rolling' queries) - schema: - type: integer - format: int32 - - name: EndOffsetSeconds - in: query - description: If this is supplied then the EndUtc is going to be based on a time this many seconds ago (to allow 'rolling' queries) - schema: - type: integer - format: int32 - - name: Status - in: query - description: Only get events of a certain status - schema: - type: string - - name: TextSearch - in: query - description: Gets or sets the text search value. - schema: - type: string - - name: ReturnedEventType - in: query - description: ' Gets or sets the returned event type.' - schema: - enum: - - None - - DeviceEvent - - AlertEvent - - ErrorEvent - - AuditEvent - - RuleSetResultEvent - - RuleResultEvent - - DataResultsEvent - - ScheduledPolicyResultEvent - - RuleSetScoreEvent - - CommsEvent - - BaselineEvent - - GroupReportResultEvent - type: string - x-nullable: false - - name: EventId - in: query - description: Gets or sets the specific event id. - schema: - type: string - - name: ExcludeTotalCount - in: query - description: ' Gets or sets a value indicating whether to calculate the total count returned in the GetEventsResponse.Total' - schema: - type: boolean - x-nullable: false - - name: IncludeHistory - in: query - description: Gets or sets a value indicating wether or not to return event history with the events. - schema: - type: boolean - x-nullable: false - - name: RulesFromBaselinePolicyName - in: query - description: Gets or sets a value indicating wether or not to return event history with the events. - schema: - type: string - - name: ReturnAllEvents - in: query - description: 'Gets or sets a value indicating whether to populate the AllEvents list ' - schema: - type: boolean - x-nullable: false - - name: CountTimeMilliseconds - in: query - description: Gets or sets a value indicating how long to spend calculating a count of results before timing out. - schema: - type: number - format: double - - name: FormatDiffs - in: query - description: 'Gets or sets a value indicating whether to format the attribute text that contains process output content differences. ' - schema: - type: boolean - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: TopN + in: query + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: List + type: array + items: + $ref: '#/components/schemas/GetEventCountsResponse' + security: + - Bearer: [ ] + post: + tags: + - stats + summary: 'Gets a summary of event counts for top N noisiest devices in the specified group, for the specified time period.' + description: 'Gets a summary of event counts for top N noisiest devices in the specified group, for the specified time period.' + operationId: GetNoisyDevicesnoisydevices_Post + parameters: + - name: TopN + in: query + schema: + type: integer + format: int32 + x-nullable: false + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GetNoisyDevices' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + title: List + type: array + items: + $ref: '#/components/schemas/GetEventCountsResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /reportExecute: + get: + tags: + - reportExecute + summary: Report Service + description: Report Service + operationId: ExecuteReport_Get + parameters: + - name: ReportItemId + in: query + description: Specifies the scheduled report item id. + required: true + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ExecuteReportResponse' + security: + - Bearer: [ ] + post: + tags: + - reportExecute + summary: Report Service + description: Report Service + operationId: ExecuteReport_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ExecuteReport' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ExecuteReportResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /reportRenderIsCached: + get: + tags: + - reportRenderIsCached + summary: Report Service + description: Report Service + operationId: RenderReportIsCached_Get + parameters: + - name: ReportItemId + in: query + description: Specifies the scheduled report item id. + schema: + type: string + - name: InstanceId + in: query + description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. + schema: + type: string + - name: RuleSetResultEventId + in: query + description: 'For compliance reports only, if the InstanceId and ReportItemId are not available, the id of a previously stored RuleSetResultEvent can be supplied in this parameter.' + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: string + type: boolean + security: + - Bearer: [ ] + post: + tags: + - reportRenderIsCached + summary: Report Service + description: Report Service + operationId: RenderReportIsCached_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RenderReportIsCached' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + title: string + type: boolean + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /reportRender: + get: + tags: + - reportRender + summary: Report Service + description: Report Service + operationId: RenderReport_Get + parameters: + - name: ReportItemId + in: query + description: Specifies the scheduled report item id. + required: true + schema: + type: string + - name: InstanceId + in: query + description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. + required: true + schema: + type: string + - name: RuleSetResultEventId + in: query + description: 'For compliance reports only, if the InstanceId and ReportItemId are not available, the id of a previously stored RuleSetResultEvent can be supplied in this parameter.' + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: String + type: string + security: + - Bearer: [ ] + post: + tags: + - reportRender + summary: Report Service + description: Report Service + operationId: RenderReport_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RenderReport' + x-bodyName: body responses: '200': - description: The Events response. + description: Success content: application/json: schema: - $ref: '#/components/schemas/GetEventsResponse' + title: String + type: string security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /events/start/{StartUtc}: + - $ref: '#/components/parameters/Accept' + /reportRenderStart: get: tags: - - events - summary: Retrieves a list of events from the hub service - description: Retrieves a list of events from the hub service. - operationId: GetEventsstartStartUtc_Get + - reportRenderStart + summary: Report Service + description: Report Service + operationId: RenderReportStart_Get parameters: - - name: Comment - in: query - description: Gets or sets the query comment so that when slow / repeated queries are identified in the database we can trace them back to a specific query in the code more easily - schema: - type: string - - name: TimeZoneId - in: query - description: Gets or sets the user time zone id. Optional, if supplied the returned Events' DateTimeLocal property is populated with a calculated equivalent local time based on the event DateTimeUtc. - schema: - type: string - - name: DeviceFilter - in: query - description: Gets or sets the device selection, null implies all devices. - schema: - $ref: '#/components/schemas/DeviceFilter' - - name: EventFilter - in: query - description: Gets or sets the event selection, null implies all events. - schema: - $ref: '#/components/schemas/EventFilter' - - name: StartUtc - in: query - description: ' Gets or sets the start of the period to return events for, null implies all.' - schema: - type: string - format: date-time - - name: EndUtc - in: query - description: Gets or sets the end of the period to return events for, null implies up to current time. - schema: - type: string - format: date-time - - name: StartOffsetSeconds - in: query - description: If this is supplied then the StartUtc is going to based on a time this many seconds ago (to allow 'rolling' queries) - schema: - type: integer - format: int32 - - name: EndOffsetSeconds - in: query - description: If this is supplied then the EndUtc is going to be based on a time this many seconds ago (to allow 'rolling' queries) - schema: - type: integer - format: int32 - - name: Status - in: query - description: Only get events of a certain status - schema: - type: string - - name: TextSearch - in: query - description: Gets or sets the text search value. - schema: - type: string - - name: ReturnedEventType - in: query - description: ' Gets or sets the returned event type.' - schema: - enum: - - None - - DeviceEvent - - AlertEvent - - ErrorEvent - - AuditEvent - - RuleSetResultEvent - - RuleResultEvent - - DataResultsEvent - - ScheduledPolicyResultEvent - - RuleSetScoreEvent - - CommsEvent - - BaselineEvent - - GroupReportResultEvent - type: string - x-nullable: false - - name: EventId - in: query - description: Gets or sets the specific event id. - schema: - type: string - - name: ExcludeTotalCount - in: query - description: ' Gets or sets a value indicating whether to calculate the total count returned in the GetEventsResponse.Total' - schema: - type: boolean - x-nullable: false - - name: IncludeHistory - in: query - description: Gets or sets a value indicating wether or not to return event history with the events. - schema: - type: boolean - x-nullable: false - - name: RulesFromBaselinePolicyName - in: query - description: Gets or sets a value indicating wether or not to return event history with the events. - schema: - type: string - - name: ReturnAllEvents - in: query - description: 'Gets or sets a value indicating whether to populate the AllEvents list ' - schema: - type: boolean - x-nullable: false - - name: CountTimeMilliseconds - in: query - description: Gets or sets a value indicating how long to spend calculating a count of results before timing out. - schema: - type: number - format: double - - name: FormatDiffs - in: query - description: 'Gets or sets a value indicating whether to format the attribute text that contains process output content differences. ' - schema: - type: boolean - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: ReportItemId + in: query + description: Specifies the scheduled report item id. + required: true + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: InstanceId + in: query + description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. + required: true + schema: + type: string + - name: RuleSetResultEventId + in: query + description: 'For compliance reports only, if the InstanceId and ReportItemId are not available, the id of a previously stored RuleSetResultEvent can be supplied in this parameter.' + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: The Events response. + description: Success content: application/json: schema: - $ref: '#/components/schemas/GetEventsResponse' + title: String + type: string security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /events/end/{End}: - get: + - Bearer: [ ] + post: tags: - - events - summary: Retrieves a list of events from the hub service - description: Retrieves a list of events from the hub service. - operationId: GetEventsendEnd_Get - parameters: - - name: Comment - in: query - description: Gets or sets the query comment so that when slow / repeated queries are identified in the database we can trace them back to a specific query in the code more easily - schema: - type: string - - name: TimeZoneId - in: query - description: Gets or sets the user time zone id. Optional, if supplied the returned Events' DateTimeLocal property is populated with a calculated equivalent local time based on the event DateTimeUtc. - schema: - type: string - - name: DeviceFilter - in: query - description: Gets or sets the device selection, null implies all devices. - schema: - $ref: '#/components/schemas/DeviceFilter' - - name: EventFilter - in: query - description: Gets or sets the event selection, null implies all events. - schema: - $ref: '#/components/schemas/EventFilter' - - name: StartUtc - in: query - description: ' Gets or sets the start of the period to return events for, null implies all.' - schema: - type: string - format: date-time - - name: EndUtc - in: query - description: Gets or sets the end of the period to return events for, null implies up to current time. - schema: - type: string - format: date-time - - name: StartOffsetSeconds - in: query - description: If this is supplied then the StartUtc is going to based on a time this many seconds ago (to allow 'rolling' queries) - schema: - type: integer - format: int32 - - name: EndOffsetSeconds - in: query - description: If this is supplied then the EndUtc is going to be based on a time this many seconds ago (to allow 'rolling' queries) - schema: - type: integer - format: int32 - - name: Status - in: query - description: Only get events of a certain status - schema: - type: string - - name: TextSearch - in: query - description: Gets or sets the text search value. - schema: - type: string - - name: ReturnedEventType - in: query - description: ' Gets or sets the returned event type.' - schema: - enum: - - None - - DeviceEvent - - AlertEvent - - ErrorEvent - - AuditEvent - - RuleSetResultEvent - - RuleResultEvent - - DataResultsEvent - - ScheduledPolicyResultEvent - - RuleSetScoreEvent - - CommsEvent - - BaselineEvent - - GroupReportResultEvent - type: string - x-nullable: false - - name: EventId - in: query - description: Gets or sets the specific event id. - schema: - type: string - - name: ExcludeTotalCount - in: query - description: ' Gets or sets a value indicating whether to calculate the total count returned in the GetEventsResponse.Total' - schema: - type: boolean - x-nullable: false - - name: IncludeHistory - in: query - description: Gets or sets a value indicating wether or not to return event history with the events. - schema: - type: boolean - x-nullable: false - - name: RulesFromBaselinePolicyName - in: query - description: Gets or sets a value indicating wether or not to return event history with the events. - schema: - type: string - - name: ReturnAllEvents - in: query - description: 'Gets or sets a value indicating whether to populate the AllEvents list ' - schema: - type: boolean - x-nullable: false - - name: CountTimeMilliseconds - in: query - description: Gets or sets a value indicating how long to spend calculating a count of results before timing out. - schema: - type: number - format: double - - name: FormatDiffs - in: query - description: 'Gets or sets a value indicating whether to format the attribute text that contains process output content differences. ' - schema: - type: boolean - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: - type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - reportRenderStart + summary: Report Service + description: Report Service + operationId: RenderReportStart_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RenderReportStart' + x-bodyName: body responses: '200': - description: The Events response. + description: Success content: application/json: schema: - $ref: '#/components/schemas/GetEventsResponse' + title: String + type: string security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /events/start/{StartUtc}/end/{End}: + - $ref: '#/components/parameters/Accept' + /reports/scheduled/instances/rendered/download: get: tags: - - events - summary: Retrieves a list of events from the hub service - description: Retrieves a list of events from the hub service. - operationId: GetEventsstartStartUtcendEnd_Get + - reports + summary: Gets a previously generated report output file + description: Gets a previously generated report output file + operationId: GetScheduledInstanceOutputscheduledinstancesrendereddownload_Get parameters: - - name: Comment - in: query - description: Gets or sets the query comment so that when slow / repeated queries are identified in the database we can trace them back to a specific query in the code more easily - schema: - type: string - - name: TimeZoneId - in: query - description: Gets or sets the user time zone id. Optional, if supplied the returned Events' DateTimeLocal property is populated with a calculated equivalent local time based on the event DateTimeUtc. - schema: - type: string - - name: DeviceFilter - in: query - description: Gets or sets the device selection, null implies all devices. - schema: - $ref: '#/components/schemas/DeviceFilter' - - name: EventFilter - in: query - description: Gets or sets the event selection, null implies all events. - schema: - $ref: '#/components/schemas/EventFilter' - - name: StartUtc - in: query - description: ' Gets or sets the start of the period to return events for, null implies all.' - schema: - type: string - format: date-time - - name: EndUtc - in: query - description: Gets or sets the end of the period to return events for, null implies up to current time. - schema: - type: string - format: date-time - - name: StartOffsetSeconds - in: query - description: If this is supplied then the StartUtc is going to based on a time this many seconds ago (to allow 'rolling' queries) - schema: - type: integer - format: int32 - - name: EndOffsetSeconds - in: query - description: If this is supplied then the EndUtc is going to be based on a time this many seconds ago (to allow 'rolling' queries) - schema: - type: integer - format: int32 - - name: Status - in: query - description: Only get events of a certain status - schema: - type: string - - name: TextSearch - in: query - description: Gets or sets the text search value. - schema: - type: string - - name: ReturnedEventType - in: query - description: ' Gets or sets the returned event type.' - schema: - enum: - - None - - DeviceEvent - - AlertEvent - - ErrorEvent - - AuditEvent - - RuleSetResultEvent - - RuleResultEvent - - DataResultsEvent - - ScheduledPolicyResultEvent - - RuleSetScoreEvent - - CommsEvent - - BaselineEvent - - GroupReportResultEvent - type: string - x-nullable: false - - name: EventId - in: query - description: Gets or sets the specific event id. - schema: - type: string - - name: ExcludeTotalCount - in: query - description: ' Gets or sets a value indicating whether to calculate the total count returned in the GetEventsResponse.Total' - schema: - type: boolean - x-nullable: false - - name: IncludeHistory - in: query - description: Gets or sets a value indicating wether or not to return event history with the events. - schema: - type: boolean - x-nullable: false - - name: RulesFromBaselinePolicyName - in: query - description: Gets or sets a value indicating wether or not to return event history with the events. - schema: - type: string - - name: ReturnAllEvents - in: query - description: 'Gets or sets a value indicating whether to populate the AllEvents list ' - schema: - type: boolean - x-nullable: false - - name: CountTimeMilliseconds - in: query - description: Gets or sets a value indicating how long to spend calculating a count of results before timing out. - schema: - type: number - format: double - - name: FormatDiffs - in: query - description: 'Gets or sets a value indicating whether to format the attribute text that contains process output content differences. ' - schema: - type: boolean - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: - type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: The Events response. + description: Success content: application/json: schema: - $ref: '#/components/schemas/GetEventsResponse' + title: String + type: string + security: + - Bearer: [ ] + post: + tags: + - reports + summary: Gets a previously generated report output file + description: Gets a previously generated report output file + operationId: GetScheduledInstanceOutputscheduledinstancesrendereddownload_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetScheduledInstanceOutput' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + title: String + type: string security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /events/skip/{Skip}/take/{Take}: + - $ref: '#/components/parameters/Accept' + /reports/scheduled/instances/rendered/delete: get: tags: - - events - summary: Retrieves a list of events from the hub service - description: Retrieves a list of events from the hub service. - operationId: GetEventsskipSkiptakeTake_Get + - reports + summary: Deletes previously generated report output files + description: Deletes previously generated report output files + operationId: DeleteScheduledInstanceOutputsscheduledinstancesrendereddelete_Get parameters: - - name: Comment - in: query - description: Gets or sets the query comment so that when slow / repeated queries are identified in the database we can trace them back to a specific query in the code more easily - schema: - type: string - - name: TimeZoneId - in: query - description: Gets or sets the user time zone id. Optional, if supplied the returned Events' DateTimeLocal property is populated with a calculated equivalent local time based on the event DateTimeUtc. - schema: - type: string - - name: DeviceFilter - in: query - description: Gets or sets the device selection, null implies all devices. - schema: - $ref: '#/components/schemas/DeviceFilter' - - name: EventFilter - in: query - description: Gets or sets the event selection, null implies all events. - schema: - $ref: '#/components/schemas/EventFilter' - - name: StartUtc - in: query - description: ' Gets or sets the start of the period to return events for, null implies all.' - schema: - type: string - format: date-time - - name: EndUtc - in: query - description: Gets or sets the end of the period to return events for, null implies up to current time. - schema: - type: string - format: date-time - - name: StartOffsetSeconds - in: query - description: If this is supplied then the StartUtc is going to based on a time this many seconds ago (to allow 'rolling' queries) - schema: - type: integer - format: int32 - - name: EndOffsetSeconds - in: query - description: If this is supplied then the EndUtc is going to be based on a time this many seconds ago (to allow 'rolling' queries) - schema: - type: integer - format: int32 - - name: Status - in: query - description: Only get events of a certain status - schema: - type: string - - name: TextSearch - in: query - description: Gets or sets the text search value. - schema: - type: string - - name: ReturnedEventType - in: query - description: ' Gets or sets the returned event type.' - schema: - enum: - - None - - DeviceEvent - - AlertEvent - - ErrorEvent - - AuditEvent - - RuleSetResultEvent - - RuleResultEvent - - DataResultsEvent - - ScheduledPolicyResultEvent - - RuleSetScoreEvent - - CommsEvent - - BaselineEvent - - GroupReportResultEvent - type: string - x-nullable: false - - name: EventId - in: query - description: Gets or sets the specific event id. - schema: - type: string - - name: ExcludeTotalCount - in: query - description: ' Gets or sets a value indicating whether to calculate the total count returned in the GetEventsResponse.Total' - schema: - type: boolean - x-nullable: false - - name: IncludeHistory - in: query - description: Gets or sets a value indicating wether or not to return event history with the events. - schema: - type: boolean - x-nullable: false - - name: RulesFromBaselinePolicyName - in: query - description: Gets or sets a value indicating wether or not to return event history with the events. - schema: - type: string - - name: ReturnAllEvents - in: query - description: 'Gets or sets a value indicating whether to populate the AllEvents list ' - schema: - type: boolean - x-nullable: false - - name: CountTimeMilliseconds - in: query - description: Gets or sets a value indicating how long to spend calculating a count of results before timing out. - schema: - type: number - format: double - - name: FormatDiffs - in: query - description: 'Gets or sets a value indicating whether to format the attribute text that contains process output content differences. ' - schema: - type: boolean - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: - type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] + post: + tags: + - reports + summary: Deletes previously generated report output files + description: Deletes previously generated report output files + operationId: DeleteScheduledInstanceOutputsscheduledinstancesrendereddelete_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DeleteScheduledInstanceOutputs' + x-bodyName: body responses: - '200': - description: The Events response. + '204': + description: No Content content: - application/json: - schema: - $ref: '#/components/schemas/GetEventsResponse' + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /events/{EventId}: + - $ref: '#/components/parameters/Accept' + /reports/scheduled/instances/delete: get: tags: - - events - summary: Retrieves a list of events from the hub service - description: Retrieves a list of events from the hub service. - operationId: GetEventsEventId_Get + - reports + summary: Report Service + description: Report Service + operationId: DeleteScheduledInstancescheduledinstancesdelete_Get parameters: - - name: Comment - in: query - description: Gets or sets the query comment so that when slow / repeated queries are identified in the database we can trace them back to a specific query in the code more easily - schema: - type: string - - name: TimeZoneId - in: query - description: Gets or sets the user time zone id. Optional, if supplied the returned Events' DateTimeLocal property is populated with a calculated equivalent local time based on the event DateTimeUtc. - schema: - type: string - - name: DeviceFilter - in: query - description: Gets or sets the device selection, null implies all devices. - schema: - $ref: '#/components/schemas/DeviceFilter' - - name: EventFilter - in: query - description: Gets or sets the event selection, null implies all events. - schema: - $ref: '#/components/schemas/EventFilter' - - name: StartUtc - in: query - description: ' Gets or sets the start of the period to return events for, null implies all.' - schema: - type: string - format: date-time - - name: EndUtc - in: query - description: Gets or sets the end of the period to return events for, null implies up to current time. - schema: - type: string - format: date-time - - name: StartOffsetSeconds - in: query - description: If this is supplied then the StartUtc is going to based on a time this many seconds ago (to allow 'rolling' queries) - schema: - type: integer - format: int32 - - name: EndOffsetSeconds - in: query - description: If this is supplied then the EndUtc is going to be based on a time this many seconds ago (to allow 'rolling' queries) - schema: - type: integer - format: int32 - - name: Status - in: query - description: Only get events of a certain status - schema: - type: string - - name: TextSearch - in: query - description: Gets or sets the text search value. - schema: - type: string - - name: ReturnedEventType - in: query - description: ' Gets or sets the returned event type.' - schema: - enum: - - None - - DeviceEvent - - AlertEvent - - ErrorEvent - - AuditEvent - - RuleSetResultEvent - - RuleResultEvent - - DataResultsEvent - - ScheduledPolicyResultEvent - - RuleSetScoreEvent - - CommsEvent - - BaselineEvent - - GroupReportResultEvent - type: string - x-nullable: false - - name: EventId - in: query - description: Gets or sets the specific event id. - schema: - type: string - - name: ExcludeTotalCount - in: query - description: ' Gets or sets a value indicating whether to calculate the total count returned in the GetEventsResponse.Total' - schema: - type: boolean - x-nullable: false - - name: IncludeHistory - in: query - description: Gets or sets a value indicating wether or not to return event history with the events. - schema: - type: boolean - x-nullable: false - - name: RulesFromBaselinePolicyName - in: query - description: Gets or sets a value indicating wether or not to return event history with the events. - schema: - type: string - - name: ReturnAllEvents - in: query - description: 'Gets or sets a value indicating whether to populate the AllEvents list ' - schema: - type: boolean - x-nullable: false - - name: CountTimeMilliseconds - in: query - description: Gets or sets a value indicating how long to spend calculating a count of results before timing out. - schema: - type: number - format: double - - name: FormatDiffs - in: query - description: 'Gets or sets a value indicating whether to format the attribute text that contains process output content differences. ' - schema: - type: boolean - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: ReportItemId + in: query + description: Specifies the scheduled report item id. + required: true + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: InstanceId + in: query + description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. + required: true + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: - '200': - description: The Events response. + '204': + description: No Content content: - application/json: - schema: - $ref: '#/components/schemas/GetEventsResponse' + application/json: { } security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /alertEvents/add: + - Bearer: [ ] post: tags: - - alertEvents - summary: Adds a list of alert events to the system - description: Adds a list of alert events to the system. - operationId: SubmitAlertEventsadd_Post + - reports + summary: Report Service + description: Report Service + operationId: DeleteScheduledInstancescheduledinstancesdelete_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/SubmitAlertEvents' + $ref: '#/components/schemas/DeleteScheduledInstance' x-bodyName: body responses: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /alertEvents/limitedAdd: + - $ref: '#/components/parameters/Accept' + /reports/scheduled/instance/updateLifetime: + get: + tags: + - reports + summary: Report Service + description: Report Service + operationId: UpdateScheduledInstanceLifetimescheduledinstanceupdateLifetime_Get + parameters: + - name: ReportItemId + in: query + description: Specifies the scheduled report item id. + required: true + schema: + type: string + - name: InstanceId + in: query + description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. + required: true + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetScheduledInstancesResponse' + security: + - Bearer: [ ] post: tags: - - alertEvents - summary: Adds a list of alert events to the system. The response can indicate a rate-limiting back off time - description: Adds a list of alert events to the system. The response can indicate a rate-limiting back off time. - operationId: SubmitAlertEventsLimitedlimitedAdd_Post + - reports + summary: Report Service + description: Report Service + operationId: UpdateScheduledInstanceLifetimescheduledinstanceupdateLifetime_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/SubmitAlertEventsLimited' + $ref: '#/components/schemas/UpdateScheduledInstanceLifetime' x-bodyName: body responses: '200': @@ -2129,91 +5189,300 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SubmitAlertEventsLimitedResponse' + $ref: '#/components/schemas/GetScheduledInstancesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /baselineEvents/add: + - $ref: '#/components/parameters/Accept' + /reports/scheduled/instances/rendered: + get: + tags: + - reports + summary: Report Service + description: Report Service + operationId: GetScheduledInstanceRenderedscheduledinstancesrendered_Get + parameters: + - name: ReportItemId + in: query + description: Specifies the scheduled report item id. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetScheduledInstanceRenderedResponse' + security: + - Bearer: [ ] post: tags: - - baselineEvents - summary: Adds a list of baseline events to the system - description: Adds a list of baseline events to the system. - operationId: SubmitBaselineEventsadd_Post + - reports + summary: Report Service + description: Report Service + operationId: GetScheduledInstanceRenderedscheduledinstancesrendered_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/SubmitBaselineEvents' + $ref: '#/components/schemas/GetScheduledInstanceRendered' x-bodyName: body responses: - '204': - description: No Content + '200': + description: Success content: - application/json: {} + application/json: + schema: + $ref: '#/components/schemas/GetScheduledInstanceRenderedResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /baselineEvents/limitedAdd: + - $ref: '#/components/parameters/Accept' + /reports/scheduled/add: + get: + tags: + - reports + summary: Adds a new schedulable report of the type specified by the Id parameter + description: Adds a new schedulable report of the type specified by the Id parameter + operationId: AddScheduledReportscheduledadd_Get + parameters: + - name: Id + in: query + description: 'The id of the type of report to add, from the list supplied by GetAvailableReportTypes' + required: true + schema: + type: string + - name: IsPublic + in: query + description: Indicates whether the report/query can be seen by everyone + schema: + type: boolean + x-nullable: false + - name: IsEditable + in: query + description: 'Indicates whether the report/query can be edited/deleted by everyone. Note, if this is true, IsPublic must also be true' + schema: + type: boolean + x-nullable: false + - name: IsHidden + in: query + description: Indicates whether the report/query is visible in the reports list. Used to create temporary items for interactive 'export to csv' functions. + schema: + type: boolean + x-nullable: false + - name: AsCopyOf + in: query + description: Specifies as a copy of an existing the report/query with this Id + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: 'The response to requests to add, query or update scheduled reports, listing the new states of the reports affected' + content: + application/json: + schema: + $ref: '#/components/schemas/GetScheduledReportsResponse' + security: + - Bearer: [ ] post: tags: - - baselineEvents - summary: Adds a list of baseline events to the system. The response can indicate a rate-limiting back off time - description: Adds a list of baseline events to the system. The response can indicate a rate-limiting back off time. - operationId: SubmitBaselineEventsLimitedlimitedAdd_Post + - reports + summary: Adds a new schedulable report of the type specified by the Id parameter + description: Adds a new schedulable report of the type specified by the Id parameter + operationId: AddScheduledReportscheduledadd_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/SubmitBaselineEventsLimited' + $ref: '#/components/schemas/AddScheduledReport' x-bodyName: body responses: '200': - description: Success + description: 'The response to requests to add, query or update scheduled reports, listing the new states of the reports affected' content: application/json: schema: - $ref: '#/components/schemas/SubmitBaselineEventsLimitedResponse' + $ref: '#/components/schemas/GetScheduledReportsResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /deviceEvents/add: + - $ref: '#/components/parameters/Accept' + /reports/scheduled/update: + get: + tags: + - reports + summary: Report Service + description: Report Service + operationId: UpdateScheduledReportscheduledupdate_Get + parameters: + - name: ShowTableOfContents + in: query + description: Specifies the updated setting for when a table of content page is shown. + schema: + enum: + - None + - Always + - Auto + type: string + x-nullable: false + - name: ContainerReport + in: query + description: Specifies the updated definition of the container report. + schema: + $ref: '#/components/schemas/ReportSpecification' + - name: Reports + in: query + description: Specifies the updated definition of the sub reports. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/ReportSpecification' + - name: KeepUnscheduledResultsForMinutes + in: query + description: 'Specifies how long to keep ''adhoc'' (ie non-scheduled) report results for, in minutes.' + schema: + type: integer + format: int32 + x-nullable: false + - name: KeepScheduledResultsForMinutes + in: query + description: 'Specifies how long to keep scheduled report results for, in minutes.' + schema: + type: integer + format: int32 + x-nullable: false + - name: WaitForAdhocResultsMinutes + in: query + description: 'Specifies long to wait for a run''s queries to complete, in minutes.' + schema: + type: integer + format: int32 + x-nullable: false + - name: OverrideWaitForResults + in: query + description: Specifies whether to override the default behaviour for scheduled queries of waiting until the next scheduled run and use the value specified by WaitForAdhocResultsMinutes instead. + schema: + type: boolean + x-nullable: false + - name: Schedule + in: query + description: Specifies the updated schedule on which the report is run. + schema: + $ref: '#/components/schemas/ReportSchedule' + - name: EmailDelivery + in: query + description: Specifies the updated email delivery settings. + schema: + $ref: '#/components/schemas/ReportEmailDelivery' + - name: IsPublic + in: query + description: Specifies whether the report/query can be seen by everyone. + schema: + type: boolean + x-nullable: false + - name: IsEditable + in: query + description: Specifies whether the report/query can be edited by everyone. + schema: + type: boolean + x-nullable: false + - name: IsHidden + in: query + description: Specifies whether the report/query can be seen in the UI. + schema: + type: boolean + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: 'The response to requests to add, query or update scheduled reports, listing the new states of the reports affected' + content: + application/json: + schema: + $ref: '#/components/schemas/GetScheduledReportsResponse' + security: + - Bearer: [ ] post: tags: - - deviceEvents - summary: Adds a list of device change events to the system - description: Adds a list of device change events to the system. - operationId: SubmitDeviceEventsadd_Post + - reports + summary: Report Service + description: Report Service + operationId: UpdateScheduledReportscheduledupdate_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/SubmitDeviceEvents' + $ref: '#/components/schemas/UpdateScheduledReport' x-bodyName: body responses: - '204': - description: No Content + '200': + description: 'The response to requests to add, query or update scheduled reports, listing the new states of the reports affected' + content: + application/json: + schema: + $ref: '#/components/schemas/GetScheduledReportsResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /reports/scheduled/delete: + get: + tags: + - reports + summary: Report Service + description: Report Service + operationId: DeleteScheduledReportsscheduleddelete_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success content: - application/json: {} + application/json: + schema: + title: string + type: boolean security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /deviceEvents/limitedAdd: + - Bearer: [ ] post: tags: - - deviceEvents - summary: Adds a list of device change events to the system. The response can indicate a rate-limiting back off time - description: Adds a list of device change events to the system. The response can indicate a rate-limiting back off time. - operationId: SubmitDeviceEventsLimitedlimitedAdd_Post + - reports + summary: Report Service + description: Report Service + operationId: DeleteScheduledReportsscheduleddelete_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/SubmitDeviceEventsLimited' + $ref: '#/components/schemas/DeleteScheduledReports' x-bodyName: body responses: '200': @@ -2221,624 +5490,654 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SubmitDeviceEventsLimitedResponse' + title: string + type: boolean security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /status/ready: + - $ref: '#/components/parameters/Accept' + /reports/scheduled/instances: get: tags: - - status - summary: Gets whether system is booted and ready for login - description: Gets whether system is booted and ready for login. - operationId: SystemReadyready_Get + - reports + summary: Report Service + description: Report Service + operationId: GetScheduledInstancesscheduledinstances_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: SummaryOnly + in: query + description: Returns only summary information for use in reporting UI page + schema: + type: boolean + x-nullable: false + - name: ReportItemId + in: query + description: Specifies the scheduled report item id. + required: true + schema: + type: string + - name: InstanceId + in: query + description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. + required: true + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Indicates if system is booted and ready for login. + description: Success content: application/json: schema: - $ref: '#/components/schemas/SystemReadyResponse' - parameters: - - $ref: '#/components/parameters/Accept' - /status/system: - get: + $ref: '#/components/schemas/GetScheduledInstancesResponse' + security: + - Bearer: [ ] + post: tags: - - status - summary: Gets system version and config settings once logged in - description: Gets system version and config settings once logged in. - operationId: SystemDetailssystem_Get - parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - reports + summary: Report Service + description: Report Service + operationId: GetScheduledInstancesscheduledinstances_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetScheduledInstances' + x-bodyName: body responses: '200': - description: System version and config settings. + description: Success content: application/json: schema: - $ref: '#/components/schemas/SystemDetailsResponse' + $ref: '#/components/schemas/GetScheduledInstancesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /status/backgroundtasks: + - $ref: '#/components/parameters/Accept' + /uploadAgentUpdate: get: tags: - - status - summary: Retrieves a list of background, potentially long-running, tasks the hub has performed and their associated status. - description: Retrieves a list of background, potentially long-running, tasks the hub has performed and their associated status. - operationId: GetBackgroundTaskStatusesbackgroundtasks_Get + - uploadAgentUpdate + summary: Upload an Agent Update + description: Upload an Agent Update + operationId: UploadAgentUpdate_Get parameters: - - name: UserName - in: query - description: Specifies a specific user name to retrieve tasks for (Optional, but only Admin users can retrieve tasks for other users or internal system tasks). - schema: - type: string - - name: StartDateTimeUtc - in: query - description: Specifies the start time (in UTC) for a task to be retrieved (Optional). - schema: - type: string - format: date-time - - name: EndDateTimeUtc - in: query - description: Specifies the end time (in UTC) for a task to be retrieved (Optional). - schema: - type: string - format: date-time - - name: Statuses - in: query - description: Specifies the status of tasks to be retrieved (Optional). - style: form - schema: - type: array - items: - type: string - x-nullable: false - - name: TaskIds - in: query - description: Specifies a list of specific task ids to retrieved (Optional). - style: form - schema: - type: array - items: - type: string - - name: TaskTypes - in: query - description: Specifies a list of specific task types to be retrieved (Optional). - style: form - schema: - type: array - items: - type: string - - name: IncludeDependentTasks - in: query - description: Specifies whether to return the tasks that each task depends on in its DependentTasks property (Optional). - schema: - type: boolean - x-nullable: false - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: - '200': - description: Success + '204': + description: No Content content: - application/json: - schema: - title: List - type: array - items: - $ref: '#/components/schemas/BackgroundTaskDetails' + application/json: { } + security: + - Bearer: [ ] + post: + tags: + - uploadAgentUpdate + summary: Upload an Agent Update + description: Upload an Agent Update + operationId: UploadAgentUpdate_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UploadAgentUpdate' + x-bodyName: body + responses: + '204': + description: No Content + content: + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /status/eventsOnIncomingQueue: + - $ref: '#/components/parameters/Accept' + /updatehubdetails: get: tags: - - status - summary: Gets the number of events currently in the processing queue - description: Gets the number of events currently in the processing queue. - operationId: EventsOnIncomingQueueeventsOnIncomingQueue_Get + - updatehubdetails + summary: Update the HUbDetails.xml file for the specified agents / groups + description: Update the HUbDetails.xml file for the specified agents / groups + operationId: UpdateHubDetails_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: - '200': - description: Success + '204': + description: No Content content: - application/json: - schema: - title: string - type: integer - format: int32 + application/json: { } + security: + - Bearer: [ ] + post: + tags: + - updatehubdetails + summary: Update the HUbDetails.xml file for the specified agents / groups + description: Update the HUbDetails.xml file for the specified agents / groups + operationId: UpdateHubDetails_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateHubDetails' + x-bodyName: body + responses: + '204': + description: No Content + content: + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /status/messageStatus: + - $ref: '#/components/parameters/Accept' + '/downloadAgentUpdate/{VersionRequested}': get: tags: - - status - summary: Returns the number of internal event notification messages received, processed or failed. - description: Returns the number of internal event notification messages received, processed or failed. - operationId: EventMessageStatusmessageStatus_Get + - downloadAgentUpdate + summary: Download an update package for the agent. + description: Download an update package for the agent. + operationId: DownloadUpdateVersionRequested_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: VersionRequested + in: query + description: 'Used when requesting an update file from the hub, specifies the specific version required.' + schema: + type: string + - name: UpdateType + in: query + description: 'Specifies the update type to download (e,g RPM, DEB etc).' + schema: + enum: + - Unknown + - MultiPlatform + - Windows + - WindowsNetCore + - LinuxRPM + - LinuxRPMNetCore + - UbuntuDEB + - UbuntuDEBNetCore + - MacOSXPKG + - MacOSXPKGNetCore + - AIXRPM + - SolarisPKG + - WindowsNetCoreArm + - LinuxRPMNetCoreArm + - UbuntuDEBNetCoreArm + - MacOSXPKGNetCoreArm + type: string + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Dictionary + description: Success content: application/json: schema: - title: Dictionary - type: object - additionalProperties: - type: string - description: Dictionary + $ref: '#/components/schemas/Object' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /status/pipeline: - get: + - Bearer: [ ] + post: tags: - - status - summary: Gets the pipeline status, returning a dictionary of pipeline components and their current status. - description: Gets the pipeline status, returning a dictionary of pipeline components and their current status. - operationId: GetPipelineStatuspipeline_Get - parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - downloadAgentUpdate + summary: Download an update package for the agent. + description: Download an update package for the agent. + operationId: DownloadUpdateVersionRequested_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DownloadUpdate' + x-bodyName: body responses: '200': - description: Dictionary + description: Success content: application/json: schema: - title: Dictionary - type: object - additionalProperties: - enum: - - Unknown - - Starting - - Up - - Stopping - - Down - - Busy - - Fault - - RequiresUpgrade - type: string - description: Dictionary + $ref: '#/components/schemas/Object' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /status/pipelineMetrics: + - $ref: '#/components/parameters/Accept' + '/downloadAgentUpdate/{VersionRequested}/{UpdateType}': get: tags: - - status - summary: Gets system performance metrics - description: Gets system performance metrics. - operationId: GetPipelineMetricspipelineMetrics_Get + - downloadAgentUpdate + summary: Download an update package for the agent. + description: Download an update package for the agent. + operationId: DownloadUpdateVersionRequestedUpdateType_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: VersionRequested + in: query + description: 'Used when requesting an update file from the hub, specifies the specific version required.' + schema: + type: string + - name: UpdateType + in: query + description: 'Specifies the update type to download (e,g RPM, DEB etc).' + schema: + enum: + - Unknown + - MultiPlatform + - Windows + - WindowsNetCore + - LinuxRPM + - LinuxRPMNetCore + - UbuntuDEB + - UbuntuDEBNetCore + - MacOSXPKG + - MacOSXPKGNetCore + - AIXRPM + - SolarisPKG + - WindowsNetCoreArm + - LinuxRPMNetCoreArm + - UbuntuDEBNetCoreArm + - MacOSXPKGNetCoreArm + type: string + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': description: Success content: application/json: schema: - title: List - type: array - items: - $ref: '#/components/schemas/PerformanceSnapshot' + $ref: '#/components/schemas/Object' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /status/workload: - get: + - Bearer: [ ] + post: tags: - - status - summary: Returns the pipeline workload - description: Returns the pipeline workload. - operationId: GetWorkloadStatsworkload_Get - parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - downloadAgentUpdate + summary: Download an update package for the agent. + description: Download an update package for the agent. + operationId: DownloadUpdateVersionRequestedUpdateType_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DownloadUpdate' + x-bodyName: body responses: '200': - description: Dictionary + description: Success content: application/json: schema: - title: Dictionary - type: object - additionalProperties: - type: number - format: double - x-nullable: false - description: Dictionary + $ref: '#/components/schemas/Object' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /status/cache: + - $ref: '#/components/parameters/Accept' + /agentUpdates/delete: get: tags: - - status - summary: Returns the cache statistics - description: Returns the cache statistics. - operationId: GetCacheStatscache_Get + - agentUpdates + summary: Deletes the specified Agent update. + description: Deletes the specified Agent update. + operationId: DeleteAgentUpdatedelete_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Id + in: query + description: Specifies the agent update ID to delete. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: - '200': - description: The cache statistics. + '204': + description: No Content content: - application/json: - schema: - $ref: '#/components/schemas/GetCacheStatsResponse' + application/json: { } security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /openapi3.yaml: - get: + - Bearer: [ ] + post: tags: - - openapi3.yaml - operationId: GetOpenApi3Yaml_Get + - agentUpdates + summary: Deletes the specified Agent update. + description: Deletes the specified Agent update. + operationId: DeleteAgentUpdatedelete_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DeleteAgentUpdate' + x-bodyName: body responses: - '200': - description: Success + '204': + description: No Content content: - application/json: - schema: - $ref: '#/components/schemas/Object' + application/json: { } + security: + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /reports/availableTypes: + - $ref: '#/components/parameters/Accept' + /agentUpdates: get: tags: - - reports - summary: Report Service - description: Report Service - operationId: GetAvailableReportTypesavailableTypes_Get + - agentUpdates + summary: 'Gets a list of Agent updates, by version or specific ID.' + description: 'Gets a list of Agent updates, by version or specific ID.' + operationId: GetAgentUpdates_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: VersionRequested + in: query + description: Specifies the (optional) version to get details for. + schema: + type: string + - name: Id + in: query + description: Specifies the specific agent update ID to get. + schema: + type: string + - name: UpdateType + in: query + description: 'Gets or sets the update type (deb, rpm etc)' + schema: + enum: + - Unknown + - MultiPlatform + - Windows + - WindowsNetCore + - LinuxRPM + - LinuxRPMNetCore + - UbuntuDEB + - UbuntuDEBNetCore + - MacOSXPKG + - MacOSXPKGNetCore + - AIXRPM + - SolarisPKG + - WindowsNetCoreArm + - LinuxRPMNetCoreArm + - UbuntuDEBNetCoreArm + - MacOSXPKGNetCoreArm + type: string + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': description: Success content: application/json: schema: - $ref: '#/components/schemas/GetAvailableReportTypesResponse' + title: List + type: array + items: + $ref: '#/components/schemas/AgentSoftwareUpdate' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /reports/template: - get: + - Bearer: [ ] + post: tags: - - reports - summary: Report Service - description: Report Service - operationId: GetReportTemplatetemplate_Get - parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - agentUpdates + summary: 'Gets a list of Agent updates, by version or specific ID.' + description: 'Gets a list of Agent updates, by version or specific ID.' + operationId: GetAgentUpdates_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetAgentUpdates' + x-bodyName: body responses: '200': description: Success content: application/json: schema: - title: String - type: string + title: List + type: array + items: + $ref: '#/components/schemas/AgentSoftwareUpdate' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /reports/templates: + - $ref: '#/components/parameters/Accept' + /agentSoftwareUpdateSchedules: get: tags: - - reports - summary: Report Service - description: Report Service - operationId: GetReportTemplatestemplates_Get + - agentSoftwareUpdateSchedules + summary: Gets the agent software update schedule for a group. + description: Gets the agent software update schedule for a group. + operationId: GetAgentSoftwareUpdateScheduleForGroup_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: GroupName + in: query + description: Specifies the group name to remove the schedule for. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': description: Success content: application/json: schema: - $ref: '#/components/schemas/GetReportTemplatesResponse' + title: List + type: array + items: + $ref: '#/components/schemas/GroupAgentUpdateSchedule' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /reports/scheduled: - get: + - Bearer: [ ] + post: tags: - - reports - summary: Report Service - description: Report Service - operationId: GetScheduledReportsscheduled_Get - parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - agentSoftwareUpdateSchedules + summary: Gets the agent software update schedule for a group. + description: Gets the agent software update schedule for a group. + operationId: GetAgentSoftwareUpdateScheduleForGroup_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetAgentSoftwareUpdateScheduleForGroup' + x-bodyName: body responses: '200': - description: The response to requests to add, query or update scheduled reports, listing the new states of the reports affected + description: Success content: application/json: schema: - $ref: '#/components/schemas/GetScheduledReportsResponse' + title: List + type: array + items: + $ref: '#/components/schemas/GroupAgentUpdateSchedule' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /reports/updatetemplate: + - $ref: '#/components/parameters/Accept' + /agentSoftwareUpdateSchedules/delete: get: tags: - - reports - summary: Report Service - description: Report Service - operationId: UpdateReportTemplateupdatetemplate_Get + - agentSoftwareUpdateSchedules + summary: Remove (delete) the agent software update schedule for a group. + description: Remove (delete) the agent software update schedule for a group. + operationId: DeleteAgentSoftwareUpdateScheduleFromGroupdelete_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: GroupName + in: query + description: Specifies the group name to remove the schedule for. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: - '200': - description: Success + '204': + description: No Content content: - application/json: - schema: - $ref: '#/components/schemas/UpdateReportTemplateResponse' + application/json: { } security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /reports/uploadreporttemplate: + - Bearer: [ ] post: tags: - - reports - summary: Report Service - description: Report Service - operationId: UploadReportTemplateuploadreporttemplate_Post + - agentSoftwareUpdateSchedules + summary: Remove (delete) the agent software update schedule for a group. + description: Remove (delete) the agent software update schedule for a group. + operationId: DeleteAgentSoftwareUpdateScheduleFromGroupdelete_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/UploadReportTemplate' + $ref: '#/components/schemas/DeleteAgentSoftwareUpdateScheduleFromGroup' x-bodyName: body responses: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /reports/deletecustomreporttemplate: + - $ref: '#/components/parameters/Accept' + /agentSoftwareUpdateSchedules/update: + get: + tags: + - agentSoftwareUpdateSchedules + summary: Update the agent software update schedule for a group. + description: Update the agent software update schedule for a group. + operationId: UpdateAgentSoftwareUpdateScheduleForGroupupdate_Get + parameters: + - name: GroupName + in: query + description: Gets or sets the group name that the update scheduled applies to. + schema: + type: string + - name: AgentUpdateSchedule + in: query + description: Specifies the update schedule that is being requested for the group. + schema: + $ref: '#/components/schemas/GroupAgentUpdateSchedule' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - reports - summary: Deletes a report layout template of the specified type and name - description: Deletes a report layout template of the specified type and name - operationId: DeleteCustomReportTemplatedeletecustomreporttemplate_Post + - agentSoftwareUpdateSchedules + summary: Update the agent software update schedule for a group. + description: Update the agent software update schedule for a group. + operationId: UpdateAgentSoftwareUpdateScheduleForGroupupdate_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/DeleteCustomReportTemplate' + $ref: '#/components/schemas/UpdateAgentSoftwareUpdateScheduleForGroup' x-bodyName: body responses: '204': description: No Content content: - application/json: {} - security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /reports/devicemonitoring: - get: - tags: - - reports - summary: A request to gets the data for a device monitoring report - description: A request to gets the data for a device monitoring report - operationId: DataSpecDeviceMonitoringReportdevicemonitoring_Get - parameters: - - name: DateRange - in: query - description: Provides information about how to calculate the start and end dates when performing the query - required: true - schema: - $ref: '#/components/schemas/ReportDateRange' - - name: OnlineStatuses - in: query - description: Gets or sets the online statuses of the devices to return. Optional. - style: form - schema: - type: array - items: - type: string - x-nullable: false - - name: DeviceFilter - in: query - description: Gets or sets the device selection, null implies all devices. - schema: - $ref: '#/components/schemas/DeviceFilter' - - name: Id - in: query - description: Specifies the Id of the data query specification - schema: - type: string - - name: Type - in: query - description: The Type name of the data query specification - schema: - type: string - - name: IteratorValues - in: query - description: Used to specify the list of items to report on, for data query specifications that support this. If this is not supplied, SelectionQuery can be used to specify a query to be performed to find the list of ids to report on - style: form - schema: - type: array - items: - type: string - - name: SelectionQuery - in: query - description: The SelectionQuery is an alternative to supplying a list of values to report on in IteratorValues. It can be used to represent a query such as 'find Planned Change Instances where the name starts with XYZ', returning a set of Planned Change Instance ids to report on. - schema: - $ref: '#/components/schemas/SelectionQuery' - - name: Groups - in: query - description: Specifies the Groups (and implicitly and child groups) to be reported on in the report. - style: form - schema: - type: array - items: - type: string - - name: ItemName - in: query - description: Specifies the descriptive name of the result item, for example 'report', 'planned change', 'event' etc. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false - responses: - '200': - description: The returned data for populating a device monitoring report - content: - application/json: - schema: - $ref: '#/components/schemas/DataSpecDeviceMonitoringReportResponse' + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /reports/ruleresults: + - $ref: '#/components/parameters/Accept' + /agentSoftwareUpdateSchedules/add: get: tags: - - reports - operationId: GetRuleResultsruleresults_Get + - agentSoftwareUpdateSchedules + summary: Add (set) an agent update schedule for a specific group. Only one schedule is permitted per group at the current time. + description: Add (set) an agent update schedule for a specific group. Only one schedule is permitted per group at the current time. + operationId: SetAgentSoftwareUpdateScheduleForGroupadd_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: GroupName + in: query + description: Specifies the group name to associate this schedule with. + schema: + type: string + - name: AgentUpdateSchedule + in: query + description: Defines the schedule + schema: + $ref: '#/components/schemas/GroupAgentUpdateSchedule' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': description: Success content: application/json: schema: - $ref: '#/components/schemas/GetRuleResultsResponse' + title: List + type: array + items: + $ref: '#/components/schemas/GroupAgentUpdateSchedule' security: - - Bearer: [] + - Bearer: [ ] post: tags: - - reports - operationId: GetRuleResultsruleresults_Post + - agentSoftwareUpdateSchedules + summary: Add (set) an agent update schedule for a specific group. Only one schedule is permitted per group at the current time. + description: Add (set) an agent update schedule for a specific group. Only one schedule is permitted per group at the current time. + operationId: SetAgentSoftwareUpdateScheduleForGroupadd_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/GetRuleResults' + $ref: '#/components/schemas/SetAgentSoftwareUpdateScheduleForGroup' x-bodyName: body responses: '200': @@ -2846,1112 +6145,940 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GetRuleResultsResponse' + title: List + type: array + items: + $ref: '#/components/schemas/GroupAgentUpdateSchedule' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /stats/compliancesummarydata: + - $ref: '#/components/parameters/Accept' + /syncServiceConfigItems: get: tags: - - stats - operationId: GetComplianceReportSummaryDatacompliancesummarydata_Get + - syncServiceConfigItems + summary: Retrieves a list of SyncService configuration items. + description: Retrieves a list of SyncService configuration items. + operationId: GetSyncServiceConfigItems_Get parameters: - - name: ReportItemId - in: query - description: Specifies the scheduled report item id. - required: true - schema: - type: string - - name: ReportInstanceId - in: query - description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. - required: true - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Success + description: Response for retrieving SyncService configuration items content: application/json: schema: - $ref: '#/components/schemas/ComplianceReportSummaryResponse' + $ref: '#/components/schemas/GetSyncServiceConfigItemsResponse' security: - - Bearer: [] + - Bearer: [ ] post: tags: - - stats - operationId: GetComplianceReportSummaryDatacompliancesummarydata_Post + - syncServiceConfigItems + summary: Retrieves a list of SyncService configuration items. + description: Retrieves a list of SyncService configuration items. + operationId: GetSyncServiceConfigItems_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetSyncServiceConfigItems' + x-bodyName: body + responses: + '200': + description: Response for retrieving SyncService configuration items + content: + application/json: + schema: + $ref: '#/components/schemas/GetSyncServiceConfigItemsResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /syncServiceConfigItems/add: + post: + tags: + - syncServiceConfigItems + summary: Adds a new SyncService configuration item. + description: Adds a new SyncService configuration item. + operationId: AddSyncServiceConfigItemadd_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/GetComplianceReportSummaryData' + $ref: '#/components/schemas/AddSyncServiceConfigItem' x-bodyName: body responses: '200': - description: Success + description: Response for adding a SyncService configuration item content: application/json: schema: - $ref: '#/components/schemas/ComplianceReportSummaryResponse' + $ref: '#/components/schemas/AddSyncServiceConfigItemResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /stats/plannedChanges: - get: + - $ref: '#/components/parameters/Accept' + /syncServiceConfigItems/update: + post: tags: - - stats - summary: Stats Service - description: Stats Service - operationId: GetCurrentPlannedChangesplannedChanges_Get - parameters: - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: - type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - syncServiceConfigItems + summary: Updates an existing SyncService configuration item. + description: Updates an existing SyncService configuration item. + operationId: UpdateSyncServiceConfigItemupdate_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateSyncServiceConfigItem' + x-bodyName: body responses: '200': description: Success content: application/json: schema: - $ref: '#/components/schemas/GetCurrentPlannedChangesResponse' + $ref: '#/components/schemas/Object' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /stats/compliancedata: - get: + - $ref: '#/components/parameters/Accept' + /syncServiceConfigItems/delete: + post: tags: - - stats - summary: Get report summaries by report, for either individual devices, or as group average. - description: Get report summaries by report, for either individual devices, or as group average. - operationId: GetComplianceDatacompliancedata_Get - parameters: - - name: ReportItemId - in: query - description: Specifies the scheduled report item id. - required: true - schema: - type: string - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: - type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - syncServiceConfigItems + summary: Deletes a SyncService configuration item. + description: Deletes a SyncService configuration item. + operationId: DeleteSyncServiceConfigItemdelete_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DeleteSyncServiceConfigItem' + x-bodyName: body responses: '200': - description: Compliance data by report, for either individual devices, or as group average. + description: Success content: application/json: schema: - $ref: '#/components/schemas/GetComplianceDataResponse' + $ref: '#/components/schemas/Object' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /stats/getavailablecompliancedata: + - $ref: '#/components/parameters/Accept' + /configItems: get: tags: - - stats - summary: Get a list of groups or devices that have report data available for them - description: Get a list of groups or devices that have report data available for them - operationId: GetAvailableComplianceDatagetavailablecompliancedata_Get + - configItems + summary: Retrieves a list of hub configuration parameters. + description: Retrieves a list of hub configuration parameters. + operationId: GetConfigItems_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Id + in: query + description: Specifies a specific configuration item to retrieve (Optional). + schema: + type: string + - name: Key + in: query + description: Specifies a specific configuration parameter 'Key' to retrieved (Optional). + schema: + type: string + - name: KeyList + in: query + description: Specifies a list of specific configuration parameter 'Keys' to retrieved (Optional). + style: form + schema: + type: array + items: + type: string + - name: IncludeHidden + in: query + description: 'Include hidden, ''system'', parameters.' + schema: + type: boolean + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Success + description: Describes the hub configuration parameters. content: application/json: schema: - $ref: '#/components/schemas/GetAvailableComplianceDataResponse' + $ref: '#/components/schemas/GetConfigItemsResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /stats/deviceActivity: - get: + - Bearer: [ ] + post: tags: - - stats - summary: Gets a list of inactive devices matching the filter - description: Gets a list of inactive devices matching the filter. - operationId: GetDeviceActivitydeviceActivity_Get - parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - configItems + summary: Retrieves a list of hub configuration parameters. + description: Retrieves a list of hub configuration parameters. + operationId: GetConfigItems_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetConfigItems' + x-bodyName: body responses: '200': - description: Represents the list of devices matching the request criteria that have been inactive in the specified period. + description: Describes the hub configuration parameters. content: application/json: schema: - $ref: '#/components/schemas/GetDeviceActivityResponse' + $ref: '#/components/schemas/GetConfigItemsResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /stats/events: + - $ref: '#/components/parameters/Accept' + /configItems/add: get: tags: - - stats - summary: Gets a summary of event counts for the devices or groups specified by the DeviceFilter, for the specified time period. - description: Gets a summary of event counts for the devices or groups specified by the DeviceFilter, for the specified time period. - operationId: GetEventCountsevents_Get + - configItems + summary: Add a list of hub configuration parameters. + description: Add a list of hub configuration parameters. + operationId: AddConfigItemsadd_Get parameters: - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: - type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: ConfigItems + in: query + description: A list of config items to add in bulk + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Represents a summary of event counts for the devices or groups specified by the DeviceFilter, for the specified time period. + description: 'Dictionary' content: application/json: schema: - $ref: '#/components/schemas/GetEventCountsResponse' + title: 'Dictionary' + type: object + additionalProperties: + $ref: '#/components/schemas/NewId' + description: 'Dictionary' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /stats/noisydevices: - get: + - Bearer: [ ] + post: tags: - - stats - summary: Gets a summary of event counts for top N noisiest devices in the specified group, for the specified time period. - description: Gets a summary of event counts for top N noisiest devices in the specified group, for the specified time period. - operationId: GetNoisyDevicesnoisydevices_Get - parameters: - - name: TopN - in: query - schema: - type: integer - format: int32 - x-nullable: false + - configItems + summary: Add a list of hub configuration parameters. + description: Add a list of hub configuration parameters. + operationId: AddConfigItemsadd_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/AddConfigItems' + x-bodyName: body responses: '200': - description: Success + description: 'Dictionary' content: application/json: schema: - title: List - type: array - items: - $ref: '#/components/schemas/GetEventCountsResponse' + title: 'Dictionary' + type: object + additionalProperties: + $ref: '#/components/schemas/NewId' + description: 'Dictionary' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /reportExecute: + - $ref: '#/components/parameters/Accept' + /configItems/update: get: tags: - - reportExecute - summary: Report Service - description: Report Service - operationId: ExecuteReport_Get + - configItems + summary: Update a a list of hub configuration parameters. + description: Update a a list of hub configuration parameters. + operationId: UpdateConfigItemsupdate_Get parameters: - - name: ReportItemId - in: query - description: Specifies the scheduled report item id. - required: true - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: ConfigItems + in: query + description: A list of config items to update. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/UpdateConfigItem' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: - '200': - description: Success + '204': + description: No Content content: - application/json: - schema: - $ref: '#/components/schemas/ExecuteReportResponse' + application/json: { } security: - - Bearer: [] + - Bearer: [ ] post: tags: - - reportExecute - summary: Report Service - description: Report Service - operationId: ExecuteReport_Post + - configItems + summary: Update a a list of hub configuration parameters. + description: Update a a list of hub configuration parameters. + operationId: UpdateConfigItemsupdate_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/ExecuteReport' + $ref: '#/components/schemas/UpdateConfigItems' x-bodyName: body responses: - '200': - description: Success + '204': + description: No Content content: - application/json: - schema: - $ref: '#/components/schemas/ExecuteReportResponse' + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /reportRenderIsCached: + - $ref: '#/components/parameters/Accept' + /configItems/delete: get: tags: - - reportRenderIsCached - summary: Report Service - description: Report Service - operationId: RenderReportIsCached_Get + - configItems + summary: Remove a hub configuration parameter by either ID or Key. + description: Remove a hub configuration parameter by either ID or Key. + operationId: DeleteConfigItemdelete_Get parameters: - - name: ReportItemId - in: query - description: Specifies the scheduled report item id. - schema: - type: string - - name: InstanceId - in: query - description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. - schema: - type: string - - name: RuleSetResultEventId - in: query - description: For compliance reports only, if the InstanceId and ReportItemId are not available, the id of a previously stored RuleSetResultEvent can be supplied in this parameter. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Id + in: query + description: Specifies the specific config item to remove. + schema: + type: string + - name: Key + in: query + description: 'Specifies the config item key to remove. Note : will remove all instances of config items with the same key.' + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: - '200': - description: Success + '204': + description: No Content content: - application/json: - schema: - title: string - type: boolean + application/json: { } + security: + - Bearer: [ ] + post: + tags: + - configItems + summary: Remove a hub configuration parameter by either ID or Key. + description: Remove a hub configuration parameter by either ID or Key. + operationId: DeleteConfigItemdelete_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DeleteConfigItem' + x-bodyName: body + responses: + '204': + description: No Content + content: + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /reportRender: + - $ref: '#/components/parameters/Accept' + /configItem/update: get: - tags: - - reportRender - summary: Report Service - description: Report Service - operationId: RenderReport_Get + tags: + - configItem + summary: Update a single hub configuration parameter by either ID or Key. + description: Update a single hub configuration parameter by either ID or Key. + operationId: UpdateConfigItemupdate_Get parameters: - - name: ReportItemId - in: query - description: Specifies the scheduled report item id. - required: true - schema: - type: string - - name: InstanceId - in: query - description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. - required: true - schema: - type: string - - name: RuleSetResultEventId - in: query - description: For compliance reports only, if the InstanceId and ReportItemId are not available, the id of a previously stored RuleSetResultEvent can be supplied in this parameter. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Id + in: query + description: The specific config value to update (can be used if a multi-value key is being updated or if a key is to be changed). + schema: + type: string + - name: Key + in: query + description: The new key value in the case of updating by Id or a the key to search for if updating by key. + schema: + type: string + - name: Value + in: query + description: The new value for this config key / id. + schema: + type: string + - name: Hidden + in: query + description: A boolean indicating whether or not to hide this config item from the UI. + schema: + type: boolean + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: - '200': - description: Success + '204': + description: No Content content: - application/json: - schema: - title: String - type: string + application/json: { } security: - - Bearer: [] + - Bearer: [ ] post: tags: - - reportRender - summary: Report Service - description: Report Service - operationId: RenderReport_Post + - configItem + summary: Update a single hub configuration parameter by either ID or Key. + description: Update a single hub configuration parameter by either ID or Key. + operationId: UpdateConfigItemupdate_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/RenderReport' + $ref: '#/components/schemas/UpdateConfigItem' x-bodyName: body responses: - '200': - description: Success + '204': + description: No Content content: - application/json: - schema: - title: String - type: string + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /reportRenderStart: + - $ref: '#/components/parameters/Accept' + /configItem/add: get: tags: - - reportRenderStart - summary: Report Service - description: Report Service - operationId: RenderReportStart_Get + - configItem + summary: Add a hub configuration parameter by Key. + description: Add a hub configuration parameter by Key. + operationId: AddConfigItemadd_Get parameters: - - name: ReportItemId - in: query - description: Specifies the scheduled report item id. - required: true - schema: - type: string - - name: InstanceId - in: query - description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. - required: true - schema: - type: string - - name: RuleSetResultEventId - in: query - description: For compliance reports only, if the InstanceId and ReportItemId are not available, the id of a previously stored RuleSetResultEvent can be supplied in this parameter. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Key + in: query + description: The configuration key you wish to add + schema: + type: string + - name: Value + in: query + description: The value of the key + schema: + type: string + - name: Hidden + in: query + description: A boolean indicating whether or not this is a 'hidden' key (i.e internal not intended for users to change) + schema: + type: boolean + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Success + description: The response delivered after adding a new config key / value. content: application/json: schema: - title: String - type: string + $ref: '#/components/schemas/AddConfigItemResponse' security: - - Bearer: [] + - Bearer: [ ] post: tags: - - reportRenderStart - summary: Report Service - description: Report Service - operationId: RenderReportStart_Post + - configItem + summary: Add a hub configuration parameter by Key. + description: Add a hub configuration parameter by Key. + operationId: AddConfigItemadd_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/RenderReportStart' + $ref: '#/components/schemas/AddConfigItem' x-bodyName: body responses: '200': - description: Success + description: The response delivered after adding a new config key / value. content: application/json: schema: - title: String - type: string + $ref: '#/components/schemas/AddConfigItemResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /reports/scheduled/instances/rendered/download: + - $ref: '#/components/parameters/Accept' + /misc/dateTransmissionTest: get: tags: - - reports - summary: Gets a previously generated report output file - description: Gets a previously generated report output file - operationId: GetScheduledInstanceOutputscheduledinstancesrendereddownload_Get + - misc + summary: Echos the specified date/time value to ensure that no serialization issues exist between hub and client. + description: Echos the specified date/time value to ensure that no serialization issues exist between hub and client. + operationId: DateTransmissionTestdateTransmissionTest_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: DateTime + in: query + description: The date to send to the hub that will be then sent back as the response to ensure no loss of accuracy occurs + schema: + type: string + format: date-time + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': description: Success content: application/json: schema: - title: String + title: string type: string + format: date-time security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /reports/scheduled/instances/rendered/delete: + - Bearer: [ ] post: tags: - - reports - summary: Deletes previously generated report output files - description: Deletes previously generated report output files - operationId: DeleteScheduledInstanceOutputsscheduledinstancesrendereddelete_Post + - misc + summary: Echos the specified date/time value to ensure that no serialization issues exist between hub and client. + description: Echos the specified date/time value to ensure that no serialization issues exist between hub and client. + operationId: DateTransmissionTestdateTransmissionTest_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/DeleteScheduledInstanceOutputs' + $ref: '#/components/schemas/DateTransmissionTest' x-bodyName: body - responses: - '204': - description: No Content - content: - application/json: {} - security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /reports/scheduled/instances/delete: - get: - tags: - - reports - summary: Report Service - description: Report Service - operationId: DeleteScheduledInstancescheduledinstancesdelete_Get - parameters: - - name: ReportItemId - in: query - description: Specifies the scheduled report item id. - required: true - schema: - type: string - - name: InstanceId - in: query - description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. - required: true - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false - responses: - '204': - description: No Content - content: - application/json: {} - security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /reports/scheduled/instance/updateLifetime: - get: - tags: - - reports - summary: Report Service - description: Report Service - operationId: UpdateScheduledInstanceLifetimescheduledinstanceupdateLifetime_Get - parameters: - - name: ReportItemId - in: query - description: Specifies the scheduled report item id. - required: true - schema: - type: string - - name: InstanceId - in: query - description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. - required: true - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false responses: '200': description: Success content: application/json: schema: - $ref: '#/components/schemas/GetScheduledInstancesResponse' + title: string + type: string + format: date-time security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /reports/scheduled/instances/rendered: + - $ref: '#/components/parameters/Accept' + /credentials/add: get: tags: - - reports - summary: Report Service - description: Report Service - operationId: GetScheduledInstanceRenderedscheduledinstancesrendered_Get + - credentials + summary: Add credentials for specified type and key. + description: Add credentials for specified type and key. + operationId: AddCredentialsadd_Get parameters: - - name: ReportItemId - in: query - description: Specifies the scheduled report item id. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Credentials + in: query + description: Specifies the credentials. + schema: + $ref: '#/components/schemas/Credentials' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Success + description: 'Represents some credentials used to connect to a remote service (e.g SSH, database etc).' content: application/json: schema: - $ref: '#/components/schemas/GetScheduledInstanceRenderedResponse' + $ref: '#/components/schemas/Credentials' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /reports/scheduled/add: + - Bearer: [ ] post: tags: - - reports - summary: Adds a new schedulable report of the type specified by the Id parameter - description: Adds a new schedulable report of the type specified by the Id parameter - operationId: AddScheduledReportscheduledadd_Post + - credentials + summary: Add credentials for specified type and key. + description: Add credentials for specified type and key. + operationId: AddCredentialsadd_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/AddScheduledReport' + $ref: '#/components/schemas/AddCredentials' x-bodyName: body responses: '200': - description: The response to requests to add, query or update scheduled reports, listing the new states of the reports affected - content: - application/json: - schema: - $ref: '#/components/schemas/GetScheduledReportsResponse' - security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /reports/scheduled/update: - get: - tags: - - reports - summary: Report Service - description: Report Service - operationId: UpdateScheduledReportscheduledupdate_Get - parameters: - - name: ShowTableOfContents - in: query - description: Specifies the updated setting for when a table of content page is shown. - schema: - enum: - - None - - Always - - Auto - type: string - x-nullable: false - - name: ContainerReport - in: query - description: Specifies the updated definition of the container report. - schema: - $ref: '#/components/schemas/ReportSpecification' - - name: Reports - in: query - description: Specifies the updated definition of the sub reports. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/ReportSpecification' - - name: KeepUnscheduledResultsForMinutes - in: query - description: Specifies how long to keep 'adhoc' (ie non-scheduled) report results for, in minutes. - schema: - type: integer - format: int32 - x-nullable: false - - name: KeepScheduledResultsForMinutes - in: query - description: Specifies how long to keep scheduled report results for, in minutes. - schema: - type: integer - format: int32 - x-nullable: false - - name: WaitForAdhocResultsMinutes - in: query - description: Specifies long to wait for a run's queries to complete, in minutes. - schema: - type: integer - format: int32 - x-nullable: false - - name: OverrideWaitForResults - in: query - description: Specifies whether to override the default behaviour for scheduled queries of waiting until the next scheduled run and use the value specified by WaitForAdhocResultsMinutes instead. - schema: - type: boolean - x-nullable: false - - name: Schedule - in: query - description: Specifies the updated schedule on which the report is run. - schema: - $ref: '#/components/schemas/ReportSchedule' - - name: EmailDelivery - in: query - description: Specifies the updated email delivery settings. - schema: - $ref: '#/components/schemas/ReportEmailDelivery' - - name: IsPublic - in: query - description: Specifies whether the report/query can be seen by everyone. - schema: - type: boolean - x-nullable: false - - name: IsEditable - in: query - description: Specifies whether the report/query can be edited by everyone. - schema: - type: boolean - x-nullable: false - - name: IsHidden - in: query - description: Specifies whether the report/query can be seen in the UI. - schema: - type: boolean - x-nullable: false - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false - responses: - '200': - description: The response to requests to add, query or update scheduled reports, listing the new states of the reports affected + description: 'Represents some credentials used to connect to a remote service (e.g SSH, database etc).' content: application/json: schema: - $ref: '#/components/schemas/GetScheduledReportsResponse' + $ref: '#/components/schemas/Credentials' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /reports/scheduled/delete: + - $ref: '#/components/parameters/Accept' + /credentials/update: get: tags: - - reports - summary: Report Service - description: Report Service - operationId: DeleteScheduledReportsscheduleddelete_Get + - credentials + summary: Update credentials for specified type and key. + description: Update credentials for specified type and key. + operationId: UpdateCredentialsupdate_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: CredentialsType + in: query + description: Specifies the original credential type. + schema: + enum: + - Unknown + - Shell + - Database + - FTP + - Cloud + - ESX + - ITSM + - Splunk + type: string + x-nullable: false + - name: Key + in: query + description: Specifies the original key + schema: + type: string + - name: Credentials + in: query + description: Specifies the credentials. + schema: + $ref: '#/components/schemas/Credentials' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Success + description: 'Represents some credentials used to connect to a remote service (e.g SSH, database etc).' content: application/json: schema: - title: string - type: boolean + $ref: '#/components/schemas/Credentials' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /reports/scheduled/instances: - get: + - Bearer: [ ] + post: tags: - - reports - summary: Report Service - description: Report Service - operationId: GetScheduledInstancesscheduledinstances_Get - parameters: - - name: SummaryOnly - in: query - description: Returns only summary information for use in reporting UI page - schema: - type: boolean - x-nullable: false - - name: ReportItemId - in: query - description: Specifies the scheduled report item id. - required: true - schema: - type: string - - name: InstanceId - in: query - description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. - required: true - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - credentials + summary: Update credentials for specified type and key. + description: Update credentials for specified type and key. + operationId: UpdateCredentialsupdate_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateCredentials' + x-bodyName: body responses: '200': - description: Success + description: 'Represents some credentials used to connect to a remote service (e.g SSH, database etc).' content: application/json: schema: - $ref: '#/components/schemas/GetScheduledInstancesResponse' + $ref: '#/components/schemas/Credentials' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /uploadAgentUpdate: - post: + - $ref: '#/components/parameters/Accept' + /credentials/delete: + get: tags: - - uploadAgentUpdate - summary: Upload an Agent Update - description: Upload an Agent Update - operationId: UploadAgentUpdate_Post - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UploadAgentUpdate' - x-bodyName: body + - credentials + summary: Remove credentials for specified type and key. + description: Remove credentials for specified type and key. + operationId: RemoveCredentialsdelete_Get + parameters: + - name: CredentialsType + in: query + description: Specifies the credentials type. + schema: + enum: + - Unknown + - Shell + - Database + - FTP + - Cloud + - ESX + - ITSM + - Splunk + type: string + x-nullable: false + - name: Key + in: query + description: Specifies the key. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /updatehubdetails: + - Bearer: [ ] post: tags: - - updatehubdetails - summary: Update the HUbDetails.xml file for the specified agents / groups - description: Update the HUbDetails.xml file for the specified agents / groups - operationId: UpdateHubDetails_Post + - credentials + summary: Remove credentials for specified type and key. + description: Remove credentials for specified type and key. + operationId: RemoveCredentialsdelete_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/UpdateHubDetails' + $ref: '#/components/schemas/RemoveCredentials' x-bodyName: body responses: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /downloadAgentUpdate/{VersionRequested}: + - $ref: '#/components/parameters/Accept' + /credentialsKeyedByType: get: tags: - - downloadAgentUpdate - summary: Download an update package for the agent - description: Download an update package for the agent. - operationId: DownloadUpdateVersionRequested_Get + - credentialsKeyedByType + summary: 'Get a list of all the known credentials, keyed by the type.' + description: 'Get a list of all the known credentials, keyed by the type.' + operationId: GetCredentialsKeyedByType_Get parameters: - - name: VersionRequested - in: query - description: Used when requesting an update file from the hub, specifies the specific version required. - schema: - type: string - - name: UpdateType - in: query - description: Specifies the update type to download (e,g RPM, DEB etc). - schema: - enum: - - Unknown - - MultiPlatform - - Windows - - WindowsNetCore - - LinuxRPM - - LinuxRPMNetCore - - UbuntuDEB - - UbuntuDEBNetCore - - MacOSXPKG - - MacOSXPKGNetCore - - AIXRPM - - SolarisPKG - - WindowsNetCoreArm - - LinuxRPMNetCoreArm - - UbuntuDEBNetCoreArm - - MacOSXPKGNetCoreArm - type: string - x-nullable: false - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Success + description: 'Dictionary>' content: application/json: schema: - $ref: '#/components/schemas/Object' + title: 'Dictionary>' + type: object + additionalProperties: + type: array + items: + type: string + description: 'Dictionary>' security: - - Bearer: [] + - Bearer: [ ] post: tags: - - downloadAgentUpdate - summary: Download an update package for the agent - description: Download an update package for the agent. - operationId: DownloadUpdateVersionRequested_Post + - credentialsKeyedByType + summary: 'Get a list of all the known credentials, keyed by the type.' + description: 'Get a list of all the known credentials, keyed by the type.' + operationId: GetCredentialsKeyedByType_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/DownloadUpdate' + $ref: '#/components/schemas/GetCredentialsKeyedByType' x-bodyName: body responses: '200': - description: Success + description: 'Dictionary>' content: application/json: schema: - $ref: '#/components/schemas/Object' + title: 'Dictionary>' + type: object + additionalProperties: + type: array + items: + type: string + description: 'Dictionary>' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /downloadAgentUpdate/{VersionRequested}/{UpdateType}: + - $ref: '#/components/parameters/Accept' + /credentials: get: tags: - - downloadAgentUpdate - summary: Download an update package for the agent - description: Download an update package for the agent. - operationId: DownloadUpdateVersionRequestedUpdateType_Get + - credentials + summary: Gets a list of all credentials of the specified type. + description: Gets a list of all credentials of the specified type. + operationId: GetCredentialsList_Get parameters: - - name: VersionRequested - in: query - description: Used when requesting an update file from the hub, specifies the specific version required. - schema: - type: string - - name: UpdateType - in: query - description: Specifies the update type to download (e,g RPM, DEB etc). - schema: - enum: - - Unknown - - MultiPlatform - - Windows - - WindowsNetCore - - LinuxRPM - - LinuxRPMNetCore - - UbuntuDEB - - UbuntuDEBNetCore - - MacOSXPKG - - MacOSXPKGNetCore - - AIXRPM - - SolarisPKG - - WindowsNetCoreArm - - LinuxRPMNetCoreArm - - UbuntuDEBNetCoreArm - - MacOSXPKGNetCoreArm - type: string - x-nullable: false - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: CredentialType + in: query + description: Specifies the type of credentials to return + schema: + enum: + - Unknown + - Shell + - Database + - FTP + - Cloud + - ESX + - ITSM + - Splunk + type: string + x-nullable: false + - name: DeviceFilter + in: query + description: Specifies the credentials to search for by associated agent id or group membership. + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': description: Success content: application/json: schema: - $ref: '#/components/schemas/Object' + title: List + type: array + items: + $ref: '#/components/schemas/Credentials' security: - - Bearer: [] + - Bearer: [ ] post: tags: - - downloadAgentUpdate - summary: Download an update package for the agent - description: Download an update package for the agent. - operationId: DownloadUpdateVersionRequestedUpdateType_Post + - credentials + summary: Gets a list of all credentials of the specified type. + description: Gets a list of all credentials of the specified type. + operationId: GetCredentialsList_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/DownloadUpdate' + $ref: '#/components/schemas/GetCredentialsList' x-bodyName: body responses: '200': @@ -3959,2130 +7086,2308 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Object' + title: List + type: array + items: + $ref: '#/components/schemas/Credentials' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /agentUpdates/delete: + - $ref: '#/components/parameters/Accept' + /command/tasks/status: + get: + tags: + - command + summary: 'Requests information about the given tasks'' status. If a PolicyRunId is supplied, the tasks associated with it are returned.' + description: 'Requests information about the given tasks'' status. If a PolicyRunId is supplied, the tasks associated with it are returned.' + operationId: GetAgentTaskStatusestasksstatus_Get + parameters: + - name: Ids + in: query + description: Specifies the task ids. + style: form + schema: + type: array + items: + type: integer + format: int32 + x-nullable: false + - name: PolicyRunId + in: query + description: Specifies the policy run id. + schema: + type: integer + format: int32 + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response object for GetAgentTaskStatuses + content: + application/json: + schema: + $ref: '#/components/schemas/GetAgentTaskStatusesResponse' + security: + - Bearer: [ ] post: tags: - - agentUpdates - summary: Deletes the specified Agent update - description: Deletes the specified Agent update. - operationId: DeleteAgentUpdatedelete_Post + - command + summary: 'Requests information about the given tasks'' status. If a PolicyRunId is supplied, the tasks associated with it are returned.' + description: 'Requests information about the given tasks'' status. If a PolicyRunId is supplied, the tasks associated with it are returned.' + operationId: GetAgentTaskStatusestasksstatus_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/DeleteAgentUpdate' + $ref: '#/components/schemas/GetAgentTaskStatuses' x-bodyName: body - responses: - '204': - description: No Content - content: - application/json: {} - security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /agentUpdates: - get: - tags: - - agentUpdates - summary: Gets a list of Agent updates, by version or specific ID. - description: Gets a list of Agent updates, by version or specific ID. - operationId: GetAgentUpdates_Get - parameters: - - name: VersionRequested - in: query - description: Specifies the (optional) version to get details for. - schema: - type: string - - name: Id - in: query - description: Specifies the specific agent update ID to get. - schema: - type: string - - name: UpdateType - in: query - description: Gets or sets the update type (deb, rpm etc) - schema: - enum: - - Unknown - - MultiPlatform - - Windows - - WindowsNetCore - - LinuxRPM - - LinuxRPMNetCore - - UbuntuDEB - - UbuntuDEBNetCore - - MacOSXPKG - - MacOSXPKGNetCore - - AIXRPM - - SolarisPKG - - WindowsNetCoreArm - - LinuxRPMNetCoreArm - - UbuntuDEBNetCoreArm - - MacOSXPKGNetCoreArm - type: string - x-nullable: false - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false responses: '200': - description: Success + description: The response object for GetAgentTaskStatuses content: application/json: schema: - title: List - type: array - items: - $ref: '#/components/schemas/AgentSoftwareUpdate' + $ref: '#/components/schemas/GetAgentTaskStatusesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /agentSoftwareUpdateSchedules: + - $ref: '#/components/parameters/Accept' + '/command/tasks/status/ids/{Ids}': get: tags: - - agentSoftwareUpdateSchedules - summary: Gets the agent software update schedule for a group - description: Gets the agent software update schedule for a group. - operationId: GetAgentSoftwareUpdateScheduleForGroup_Get + - command + summary: 'Requests information about the given tasks'' status. If a PolicyRunId is supplied, the tasks associated with it are returned.' + description: 'Requests information about the given tasks'' status. If a PolicyRunId is supplied, the tasks associated with it are returned.' + operationId: GetAgentTaskStatusestasksstatusidsIds_Get parameters: - - name: GroupName - in: query - description: Specifies the group name to remove the schedule for. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Ids + in: query + description: Specifies the task ids. + style: form + schema: + type: array + items: + type: integer + format: int32 + x-nullable: false + - name: PolicyRunId + in: query + description: Specifies the policy run id. + schema: + type: integer + format: int32 + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Success + description: The response object for GetAgentTaskStatuses content: application/json: schema: - title: List - type: array - items: - $ref: '#/components/schemas/GroupAgentUpdateSchedule' + $ref: '#/components/schemas/GetAgentTaskStatusesResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /agentSoftwareUpdateSchedules/delete: + - Bearer: [ ] post: tags: - - agentSoftwareUpdateSchedules - summary: Remove (delete) the agent software update schedule for a group - description: Remove (delete) the agent software update schedule for a group. - operationId: DeleteAgentSoftwareUpdateScheduleFromGroupdelete_Post + - command + summary: 'Requests information about the given tasks'' status. If a PolicyRunId is supplied, the tasks associated with it are returned.' + description: 'Requests information about the given tasks'' status. If a PolicyRunId is supplied, the tasks associated with it are returned.' + operationId: GetAgentTaskStatusestasksstatusidsIds_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/DeleteAgentSoftwareUpdateScheduleFromGroup' + $ref: '#/components/schemas/GetAgentTaskStatuses' x-bodyName: body responses: - '204': - description: No Content + '200': + description: The response object for GetAgentTaskStatuses content: - application/json: {} + application/json: + schema: + $ref: '#/components/schemas/GetAgentTaskStatusesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /agentSoftwareUpdateSchedules/update: - post: + - $ref: '#/components/parameters/Accept' + '/command/tasks/add/agent/{AgentId}': + get: tags: - - agentSoftwareUpdateSchedules - summary: Update the agent software update schedule for a group - description: Update the agent software update schedule for a group. - operationId: UpdateAgentSoftwareUpdateScheduleForGroupupdate_Post - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdateAgentSoftwareUpdateScheduleForGroup' - x-bodyName: body + - command + summary: Adds a list of tasks for the given agent. + description: Adds a list of tasks for the given agent. + operationId: SubmitAgentTaskstasksaddagentAgentId_Get + parameters: + - name: Tasks + in: query + description: Specifies the list of tasks that will be submitted. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/AgentTask' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: - '204': - description: No Content + '200': + description: The response object for SubmitAgentTasks. content: - application/json: {} + application/json: + schema: + $ref: '#/components/schemas/SubmitAgentTasksResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /agentSoftwareUpdateSchedules/add: + - Bearer: [ ] post: tags: - - agentSoftwareUpdateSchedules - summary: Add (set) an agent update schedule for a specific group. Only one schedule is permitted per group at the current time - description: Add (set) an agent update schedule for a specific group. Only one schedule is permitted per group at the current time. - operationId: SetAgentSoftwareUpdateScheduleForGroupadd_Post + - command + summary: Adds a list of tasks for the given agent. + description: Adds a list of tasks for the given agent. + operationId: SubmitAgentTaskstasksaddagentAgentId_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/SetAgentSoftwareUpdateScheduleForGroup' + $ref: '#/components/schemas/SubmitAgentTasks' x-bodyName: body responses: '200': - description: Success + description: The response object for SubmitAgentTasks. content: application/json: schema: - title: List - type: array - items: - $ref: '#/components/schemas/GroupAgentUpdateSchedule' + $ref: '#/components/schemas/SubmitAgentTasksResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /syncServiceConfigItems: + - $ref: '#/components/parameters/Accept' + '/command/tasks/agent/legacy/{LegacyId}': get: tags: - - syncServiceConfigItems - summary: Retrieves a list of SyncService configuration items - description: Retrieves a list of SyncService configuration items. - operationId: GetSyncServiceConfigItems_Get + - command + summary: Requests information about tasks for the given agent. + description: Requests information about tasks for the given agent. + operationId: GetAgentTaskstasksagentlegacyLegacyId_Get parameters: - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: AgentId + in: query + description: Specifies the agent's AgentId. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: DeviceId + in: query + description: Specifies the agent's DeviceId. + schema: + type: string + - name: TaskStatuses + in: query + description: Specifies a value indicating the task statuses to filter by. + style: form + schema: + type: array + items: + type: string + x-nullable: false + - name: TaskIds + in: query + description: Specifies value indicating the task ids to look for. + style: form + schema: + type: array + items: + type: integer + format: int32 + x-nullable: false + - name: PolicyRunId + in: query + description: Specifies the policy run id associated with the last run of the report etc. use this to find tasks started by a given scheduled policy. + schema: + type: integer + format: int32 + - name: TaskType + in: query + description: Specifies the specific task type to retrieve details for + schema: + type: string + - name: Concise + in: query + description: Return a concise view of the tasks? i.e not the Text and ResultData properties + schema: + type: boolean + x-nullable: false + - name: IgnoreActiveDates + in: query + description: 'By default only AgentTasks that are currently between their StartDate and EndDate values are returned, this flag returns tasks irrespective of dates.' + schema: + type: boolean + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Response for retrieving SyncService configuration items + description: The response object for GetAgentTasks content: application/json: schema: - $ref: '#/components/schemas/GetSyncServiceConfigItemsResponse' + $ref: '#/components/schemas/GetAgentTasksResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /syncServiceConfigItems/add: + - Bearer: [ ] post: tags: - - syncServiceConfigItems - summary: Adds a new SyncService configuration item - description: Adds a new SyncService configuration item. - operationId: AddSyncServiceConfigItemadd_Post + - command + summary: Requests information about tasks for the given agent. + description: Requests information about tasks for the given agent. + operationId: GetAgentTaskstasksagentlegacyLegacyId_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/AddSyncServiceConfigItem' + $ref: '#/components/schemas/GetAgentTasks' x-bodyName: body responses: '200': - description: Response for adding a SyncService configuration item + description: The response object for GetAgentTasks content: application/json: schema: - $ref: '#/components/schemas/AddSyncServiceConfigItemResponse' + $ref: '#/components/schemas/GetAgentTasksResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /syncServiceConfigItems/update: - post: + - $ref: '#/components/parameters/Accept' + '/command/tasks/agent/{AgentId}/all/{AllTasks}': + get: tags: - - syncServiceConfigItems - summary: Updates an existing SyncService configuration item - description: Updates an existing SyncService configuration item. - operationId: UpdateSyncServiceConfigItemupdate_Post - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdateSyncServiceConfigItem' - x-bodyName: body + - command + summary: Requests information about tasks for the given agent. + description: Requests information about tasks for the given agent. + operationId: GetAgentTaskstasksagentAgentIdallAllTasks_Get + parameters: + - name: AgentId + in: query + description: Specifies the agent's AgentId. + schema: + type: string + - name: DeviceId + in: query + description: Specifies the agent's DeviceId. + schema: + type: string + - name: TaskStatuses + in: query + description: Specifies a value indicating the task statuses to filter by. + style: form + schema: + type: array + items: + type: string + x-nullable: false + - name: TaskIds + in: query + description: Specifies value indicating the task ids to look for. + style: form + schema: + type: array + items: + type: integer + format: int32 + x-nullable: false + - name: PolicyRunId + in: query + description: Specifies the policy run id associated with the last run of the report etc. use this to find tasks started by a given scheduled policy. + schema: + type: integer + format: int32 + - name: TaskType + in: query + description: Specifies the specific task type to retrieve details for + schema: + type: string + - name: Concise + in: query + description: Return a concise view of the tasks? i.e not the Text and ResultData properties + schema: + type: boolean + x-nullable: false + - name: IgnoreActiveDates + in: query + description: 'By default only AgentTasks that are currently between their StartDate and EndDate values are returned, this flag returns tasks irrespective of dates.' + schema: + type: boolean + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Success + description: The response object for GetAgentTasks content: application/json: schema: - $ref: '#/components/schemas/Object' + $ref: '#/components/schemas/GetAgentTasksResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /syncServiceConfigItems/delete: + - Bearer: [ ] post: tags: - - syncServiceConfigItems - summary: Deletes a SyncService configuration item - description: Deletes a SyncService configuration item. - operationId: DeleteSyncServiceConfigItemdelete_Post + - command + summary: Requests information about tasks for the given agent. + description: Requests information about tasks for the given agent. + operationId: GetAgentTaskstasksagentAgentIdallAllTasks_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/DeleteSyncServiceConfigItem' + $ref: '#/components/schemas/GetAgentTasks' x-bodyName: body responses: '200': - description: Success + description: The response object for GetAgentTasks content: application/json: schema: - $ref: '#/components/schemas/Object' + $ref: '#/components/schemas/GetAgentTasksResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /configItems: + - $ref: '#/components/parameters/Accept' + '/command/tasks/agent/{AgentId}/single/{TaskId}': get: tags: - - configItems - summary: Retrieves a list of hub configuration parameters - description: Retrieves a list of hub configuration parameters. - operationId: GetConfigItems_Get + - command + summary: Requests information about tasks for the given agent. + description: Requests information about tasks for the given agent. + operationId: GetAgentTaskstasksagentAgentIdsingleTaskId_Get parameters: - - name: Id - in: query - description: Specifies a specific configuration item to retrieve (Optional). - schema: - type: string - - name: Key - in: query - description: Specifies a specific configuration parameter 'Key' to retrieved (Optional). - schema: - type: string - - name: KeyList - in: query - description: Specifies a list of specific configuration parameter 'Keys' to retrieved (Optional). - style: form - schema: - type: array - items: + - name: AgentId + in: query + description: Specifies the agent's AgentId. + schema: type: string - - name: IncludeHidden - in: query - description: Include hidden, 'system', parameters. - schema: - type: boolean - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: DeviceId + in: query + description: Specifies the agent's DeviceId. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: TaskStatuses + in: query + description: Specifies a value indicating the task statuses to filter by. + style: form + schema: + type: array + items: + type: string + x-nullable: false + - name: TaskIds + in: query + description: Specifies value indicating the task ids to look for. + style: form + schema: + type: array + items: + type: integer + format: int32 + x-nullable: false + - name: PolicyRunId + in: query + description: Specifies the policy run id associated with the last run of the report etc. use this to find tasks started by a given scheduled policy. + schema: + type: integer + format: int32 + - name: TaskType + in: query + description: Specifies the specific task type to retrieve details for + schema: + type: string + - name: Concise + in: query + description: Return a concise view of the tasks? i.e not the Text and ResultData properties + schema: + type: boolean + x-nullable: false + - name: IgnoreActiveDates + in: query + description: 'By default only AgentTasks that are currently between their StartDate and EndDate values are returned, this flag returns tasks irrespective of dates.' + schema: + type: boolean + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Describes the hub configuration parameters. + description: The response object for GetAgentTasks content: application/json: schema: - $ref: '#/components/schemas/GetConfigItemsResponse' + $ref: '#/components/schemas/GetAgentTasksResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /configItems/add: + - Bearer: [ ] post: tags: - - configItems - summary: Add a list of hub configuration parameters - description: Add a list of hub configuration parameters. - operationId: AddConfigItemsadd_Post + - command + summary: Requests information about tasks for the given agent. + description: Requests information about tasks for the given agent. + operationId: GetAgentTaskstasksagentAgentIdsingleTaskId_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/AddConfigItems' + $ref: '#/components/schemas/GetAgentTasks' x-bodyName: body responses: '200': - description: Dictionary + description: The response object for GetAgentTasks content: application/json: schema: - title: Dictionary - type: object - additionalProperties: - $ref: '#/components/schemas/NewId' - description: Dictionary + $ref: '#/components/schemas/GetAgentTasksResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /configItems/update: - post: + - $ref: '#/components/parameters/Accept' + '/command/tasks/agent/legacy/{LegacyId}/all/{AllTasks}': + get: tags: - - configItems - summary: Update a a list of hub configuration parameters - description: Update a a list of hub configuration parameters. - operationId: UpdateConfigItemsupdate_Post - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdateConfigItems' - x-bodyName: body + - command + summary: Requests information about tasks for the given agent. + description: Requests information about tasks for the given agent. + operationId: GetAgentTaskstasksagentlegacyLegacyIdallAllTasks_Get + parameters: + - name: AgentId + in: query + description: Specifies the agent's AgentId. + schema: + type: string + - name: DeviceId + in: query + description: Specifies the agent's DeviceId. + schema: + type: string + - name: TaskStatuses + in: query + description: Specifies a value indicating the task statuses to filter by. + style: form + schema: + type: array + items: + type: string + x-nullable: false + - name: TaskIds + in: query + description: Specifies value indicating the task ids to look for. + style: form + schema: + type: array + items: + type: integer + format: int32 + x-nullable: false + - name: PolicyRunId + in: query + description: Specifies the policy run id associated with the last run of the report etc. use this to find tasks started by a given scheduled policy. + schema: + type: integer + format: int32 + - name: TaskType + in: query + description: Specifies the specific task type to retrieve details for + schema: + type: string + - name: Concise + in: query + description: Return a concise view of the tasks? i.e not the Text and ResultData properties + schema: + type: boolean + x-nullable: false + - name: IgnoreActiveDates + in: query + description: 'By default only AgentTasks that are currently between their StartDate and EndDate values are returned, this flag returns tasks irrespective of dates.' + schema: + type: boolean + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: - '204': - description: No Content + '200': + description: The response object for GetAgentTasks content: - application/json: {} + application/json: + schema: + $ref: '#/components/schemas/GetAgentTasksResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /configItems/delete: + - Bearer: [ ] post: tags: - - configItems - summary: Remove a hub configuration parameter by either ID or Key - description: Remove a hub configuration parameter by either ID or Key. - operationId: DeleteConfigItemdelete_Post + - command + summary: Requests information about tasks for the given agent. + description: Requests information about tasks for the given agent. + operationId: GetAgentTaskstasksagentlegacyLegacyIdallAllTasks_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/DeleteConfigItem' + $ref: '#/components/schemas/GetAgentTasks' x-bodyName: body responses: - '204': - description: No Content + '200': + description: The response object for GetAgentTasks content: - application/json: {} + application/json: + schema: + $ref: '#/components/schemas/GetAgentTasksResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /configItem/update: - post: + - $ref: '#/components/parameters/Accept' + '/command/tasks/agent/legacy/{LegacyId}/single/{TaskId}': + get: tags: - - configItem - summary: Update a single hub configuration parameter by either ID or Key - description: Update a single hub configuration parameter by either ID or Key. - operationId: UpdateConfigItemupdate_Post - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdateConfigItem' - x-bodyName: body + - command + summary: Requests information about tasks for the given agent. + description: Requests information about tasks for the given agent. + operationId: GetAgentTaskstasksagentlegacyLegacyIdsingleTaskId_Get + parameters: + - name: AgentId + in: query + description: Specifies the agent's AgentId. + schema: + type: string + - name: DeviceId + in: query + description: Specifies the agent's DeviceId. + schema: + type: string + - name: TaskStatuses + in: query + description: Specifies a value indicating the task statuses to filter by. + style: form + schema: + type: array + items: + type: string + x-nullable: false + - name: TaskIds + in: query + description: Specifies value indicating the task ids to look for. + style: form + schema: + type: array + items: + type: integer + format: int32 + x-nullable: false + - name: PolicyRunId + in: query + description: Specifies the policy run id associated with the last run of the report etc. use this to find tasks started by a given scheduled policy. + schema: + type: integer + format: int32 + - name: TaskType + in: query + description: Specifies the specific task type to retrieve details for + schema: + type: string + - name: Concise + in: query + description: Return a concise view of the tasks? i.e not the Text and ResultData properties + schema: + type: boolean + x-nullable: false + - name: IgnoreActiveDates + in: query + description: 'By default only AgentTasks that are currently between their StartDate and EndDate values are returned, this flag returns tasks irrespective of dates.' + schema: + type: boolean + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: - '204': - description: No Content + '200': + description: The response object for GetAgentTasks content: - application/json: {} + application/json: + schema: + $ref: '#/components/schemas/GetAgentTasksResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /configItem/add: + - Bearer: [ ] post: tags: - - configItem - summary: Add a hub configuration parameter by Key - description: Add a hub configuration parameter by Key. - operationId: AddConfigItemadd_Post + - command + summary: Requests information about tasks for the given agent. + description: Requests information about tasks for the given agent. + operationId: GetAgentTaskstasksagentlegacyLegacyIdsingleTaskId_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/AddConfigItem' + $ref: '#/components/schemas/GetAgentTasks' x-bodyName: body responses: '200': - description: The response delivered after adding a new config key / value. + description: The response object for GetAgentTasks content: application/json: schema: - $ref: '#/components/schemas/AddConfigItemResponse' + $ref: '#/components/schemas/GetAgentTasksResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /misc/dateTransmissionTest: + - $ref: '#/components/parameters/Accept' + '/downloadFileHash/{HostType}/{OperatingSystem}/{Variant}': get: tags: - - misc - summary: Echos the specified date/time value to ensure that no serialization issues exist between hub and client - description: Echos the specified date/time value to ensure that no serialization issues exist between hub and client. - operationId: DateTransmissionTestdateTransmissionTest_Get + - downloadFileHash + summary: Download the filehasing utility app for remote monitoring. + description: Download the filehasing utility app for remote monitoring. + operationId: DownloadFileHashBinaryHostTypeOperatingSystemVariant_Get parameters: - - name: DateTime - in: query - description: The date to send to the hub that will be then sent back as the response to ensure no loss of accuracy occurs - schema: - type: string - format: date-time - x-nullable: false - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: ReturnUrl + in: query + description: Specifies a flag that indicates wether or not to return a URL or the file directly + schema: + type: boolean + x-nullable: false + - name: HostType + in: query + description: 'Specifies the host type the file hash binary is required for (e.g Unix, Windows etc)' + schema: + enum: + - Unknown + - Unix + - Windows + - Network + - Database + - Cloud + - ESX + - Splunk + type: string + x-nullable: false + - name: OperatingSystem + in: query + description: Specifies the operating system naame (as defined in KnownOsNames). Optional + schema: + type: string + - name: Variant + in: query + description: 'Specifies the operating system / host variant. e.g x64, 10 SPARC etc' + schema: + type: string + - name: FileId + in: query + description: Specifies the specific file id + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': description: Success content: application/json: schema: - title: string - type: string - format: date-time + $ref: '#/components/schemas/Object' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /credentials/add: + - Bearer: [ ] post: tags: - - credentials - summary: Add credentials for specified type and key - description: Add credentials for specified type and key. - operationId: AddCredentialsadd_Post + - downloadFileHash + summary: Download the filehasing utility app for remote monitoring. + description: Download the filehasing utility app for remote monitoring. + operationId: DownloadFileHashBinaryHostTypeOperatingSystemVariant_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/AddCredentials' + $ref: '#/components/schemas/DownloadFileHashBinary' x-bodyName: body responses: '200': - description: Represents some credentials used to connect to a remote service (e.g SSH, database etc). + description: Success content: application/json: schema: - $ref: '#/components/schemas/Credentials' + $ref: '#/components/schemas/Object' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /credentials/update: - post: + - $ref: '#/components/parameters/Accept' + '/downloadFileHashById/{FileId}': + get: tags: - - credentials - summary: Update credentials for specified type and key - description: Update credentials for specified type and key. - operationId: UpdateCredentialsupdate_Post - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdateCredentials' - x-bodyName: body + - downloadFileHashById + summary: Download the filehasing utility app for remote monitoring. + description: Download the filehasing utility app for remote monitoring. + operationId: DownloadFileHashBinaryFileId_Get + parameters: + - name: ReturnUrl + in: query + description: Specifies a flag that indicates wether or not to return a URL or the file directly + schema: + type: boolean + x-nullable: false + - name: HostType + in: query + description: 'Specifies the host type the file hash binary is required for (e.g Unix, Windows etc)' + schema: + enum: + - Unknown + - Unix + - Windows + - Network + - Database + - Cloud + - ESX + - Splunk + type: string + x-nullable: false + - name: OperatingSystem + in: query + description: Specifies the operating system naame (as defined in KnownOsNames). Optional + schema: + type: string + - name: Variant + in: query + description: 'Specifies the operating system / host variant. e.g x64, 10 SPARC etc' + schema: + type: string + - name: FileId + in: query + description: Specifies the specific file id + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Represents some credentials used to connect to a remote service (e.g SSH, database etc). + description: Success content: application/json: schema: - $ref: '#/components/schemas/Credentials' + $ref: '#/components/schemas/Object' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /credentials/delete: + - Bearer: [ ] post: tags: - - credentials - summary: Remove credentials for specified type and key - description: Remove credentials for specified type and key. - operationId: RemoveCredentialsdelete_Post + - downloadFileHashById + summary: Download the filehasing utility app for remote monitoring. + description: Download the filehasing utility app for remote monitoring. + operationId: DownloadFileHashBinaryFileId_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/RemoveCredentials' + $ref: '#/components/schemas/DownloadFileHashBinary' x-bodyName: body - responses: - '204': - description: No Content - content: - application/json: {} - security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /credentialsKeyedByType: - get: - tags: - - credentialsKeyedByType - summary: Get a list of all the known credentials, keyed by the type. - description: Get a list of all the known credentials, keyed by the type. - operationId: GetCredentialsKeyedByType_Get - parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false responses: '200': - description: Dictionary> + description: Success content: application/json: schema: - title: Dictionary> - type: object - additionalProperties: - type: array - items: - type: string - description: Dictionary> + $ref: '#/components/schemas/Object' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /credentials: + - $ref: '#/components/parameters/Accept' + /getFileHashBinaries: get: tags: - - credentials - summary: Gets a list of all credentials of the specified type - description: Gets a list of all credentials of the specified type. - operationId: GetCredentialsList_Get + - getFileHashBinaries + summary: Retrieves the list of file hash binaries available to download from the hub. + description: Retrieves the list of file hash binaries available to download from the hub. + operationId: GetFileHashBinaries_Get parameters: - - name: CredentialType - in: query - description: Specifies the type of credentials to return - schema: - enum: - - Unknown - - Shell - - Database - - FTP - - Cloud - - ESX - - ITSM - - Splunk - type: string - x-nullable: false - - name: DeviceFilter - in: query - description: Specifies the credentials to search for by associated agent id or group membership. - schema: - $ref: '#/components/schemas/DeviceFilter' - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': description: Success content: application/json: schema: - title: List + title: List type: array items: - $ref: '#/components/schemas/Credentials' + $ref: '#/components/schemas/FileHashBinary' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /command/tasks/status: - get: + - Bearer: [ ] + post: tags: - - command - summary: Requests information about the given tasks' status. If a PolicyRunId is supplied, the tasks associated with it are returned. - description: Requests information about the given tasks' status. If a PolicyRunId is supplied, the tasks associated with it are returned. - operationId: GetAgentTaskStatusestasksstatus_Get - parameters: - - name: Ids - in: query - description: Specifies the task ids. - style: form - schema: - type: array - items: - type: integer - format: int32 - x-nullable: false - - name: PolicyRunId - in: query - description: Specifies the policy run id. - schema: - type: integer - format: int32 - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - getFileHashBinaries + summary: Retrieves the list of file hash binaries available to download from the hub. + description: Retrieves the list of file hash binaries available to download from the hub. + operationId: GetFileHashBinaries_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetFileHashBinaries' + x-bodyName: body responses: '200': - description: The response object for GetAgentTaskStatuses + description: Success content: application/json: schema: - $ref: '#/components/schemas/GetAgentTaskStatusesResponse' + title: List + type: array + items: + $ref: '#/components/schemas/FileHashBinary' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /command/tasks/status/ids/{Ids}: + - $ref: '#/components/parameters/Accept' + /plannedChangeInstances/members: get: tags: - - command - summary: Requests information about the given tasks' status. If a PolicyRunId is supplied, the tasks associated with it are returned. - description: Requests information about the given tasks' status. If a PolicyRunId is supplied, the tasks associated with it are returned. - operationId: GetAgentTaskStatusestasksstatusidsIds_Get + - plannedChangeInstances + summary: Gets the group and device members of the specified planned change instance. + description: Gets the group and device members of the specified planned change instance. + operationId: GetPlannedChangeInstanceMembersmembers_Get parameters: - - name: Ids - in: query - description: Specifies the task ids. - style: form - schema: - type: array - items: + - name: InstanceId + in: query + description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. + required: true + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: type: integer format: int32 - x-nullable: false - - name: PolicyRunId - in: query - description: Specifies the policy run id. - schema: - type: integer - format: int32 - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + x-nullable: false responses: '200': - description: The response object for GetAgentTaskStatuses + description: Success content: application/json: schema: - $ref: '#/components/schemas/GetAgentTaskStatusesResponse' + $ref: '#/components/schemas/GetPlannedChangeInstanceMembersResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /command/tasks/add/agent/{AgentId}: + - Bearer: [ ] post: tags: - - command - summary: Adds a list of tasks for the given agent - description: Adds a list of tasks for the given agent. - operationId: SubmitAgentTaskstasksaddagentAgentId_Post + - plannedChangeInstances + summary: Gets the group and device members of the specified planned change instance. + description: Gets the group and device members of the specified planned change instance. + operationId: GetPlannedChangeInstanceMembersmembers_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/SubmitAgentTasks' + $ref: '#/components/schemas/GetPlannedChangeInstanceMembers' x-bodyName: body responses: '200': - description: The response object for SubmitAgentTasks. + description: Success content: application/json: schema: - $ref: '#/components/schemas/SubmitAgentTasksResponse' + $ref: '#/components/schemas/GetPlannedChangeInstanceMembersResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /command/tasks/agent/legacy/{LegacyId}: + - $ref: '#/components/parameters/Accept' + /plannedChangeInstances/delete: get: tags: - - command - summary: Requests information about tasks for the given agent - description: Requests information about tasks for the given agent. - operationId: GetAgentTaskstasksagentlegacyLegacyId_Get + - plannedChangeInstances + summary: Deletes an instance of a planned change from the system. + description: Deletes an instance of a planned change from the system. + operationId: DeletePlannedChangeInstancedelete_Get parameters: - - name: AgentId - in: query - description: Specifies the agent's AgentId. - schema: - type: string - - name: DeviceId - in: query - description: Specifies the agent's DeviceId. - schema: - type: string - - name: TaskStatuses - in: query - description: Specifies a value indicating the task statuses to filter by. - style: form - schema: - type: array - items: + - name: InstanceId + in: query + description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. + required: true + schema: type: string - x-nullable: false - - name: TaskIds - in: query - description: Specifies value indicating the task ids to look for. - style: form - schema: - type: array - items: + - name: DeletePlannedChange + in: query + description: Delete the 'parent' planned change also? + schema: + type: boolean + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: type: integer format: int32 - x-nullable: false - - name: PolicyRunId - in: query - description: Specifies the policy run id associated with the last run of the report etc. use this to find tasks started by a given scheduled policy. - schema: - type: integer - format: int32 - - name: TaskType - in: query - description: Specifies the specific task type to retrieve details for - schema: - type: string - - name: Concise - in: query - description: Return a concise view of the tasks? i.e not the Text and ResultData properties - schema: - type: boolean - x-nullable: false - - name: IgnoreActiveDates - in: query - description: By default only AgentTasks that are currently between their StartDate and EndDate values are returned, this flag returns tasks irrespective of dates. - schema: - type: boolean - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: - type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + x-nullable: false responses: - '200': - description: The response object for GetAgentTasks - content: - application/json: - schema: - $ref: '#/components/schemas/GetAgentTasksResponse' - security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /command/tasks/agent/{AgentId}/all/{AllTasks}: - get: - tags: - - command - summary: Requests information about tasks for the given agent - description: Requests information about tasks for the given agent. - operationId: GetAgentTaskstasksagentAgentIdallAllTasks_Get - parameters: - - name: AgentId - in: query - description: Specifies the agent's AgentId. - schema: - type: string - - name: DeviceId - in: query - description: Specifies the agent's DeviceId. - schema: - type: string - - name: TaskStatuses - in: query - description: Specifies a value indicating the task statuses to filter by. - style: form - schema: - type: array - items: - type: string - x-nullable: false - - name: TaskIds - in: query - description: Specifies value indicating the task ids to look for. - style: form - schema: - type: array - items: - type: integer - format: int32 - x-nullable: false - - name: PolicyRunId - in: query - description: Specifies the policy run id associated with the last run of the report etc. use this to find tasks started by a given scheduled policy. - schema: - type: integer - format: int32 - - name: TaskType - in: query - description: Specifies the specific task type to retrieve details for - schema: - type: string - - name: Concise - in: query - description: Return a concise view of the tasks? i.e not the Text and ResultData properties - schema: - type: boolean - x-nullable: false - - name: IgnoreActiveDates - in: query - description: By default only AgentTasks that are currently between their StartDate and EndDate values are returned, this flag returns tasks irrespective of dates. - schema: - type: boolean - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: - type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] + post: + tags: + - plannedChangeInstances + summary: Deletes an instance of a planned change from the system. + description: Deletes an instance of a planned change from the system. + operationId: DeletePlannedChangeInstancedelete_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DeletePlannedChangeInstance' + x-bodyName: body responses: - '200': - description: The response object for GetAgentTasks + '204': + description: No Content content: - application/json: - schema: - $ref: '#/components/schemas/GetAgentTasksResponse' + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /command/tasks/agent/{AgentId}/single/{TaskId}: + - $ref: '#/components/parameters/Accept' + /plannedChangeInstances/deleteMember: get: tags: - - command - summary: Requests information about tasks for the given agent - description: Requests information about tasks for the given agent. - operationId: GetAgentTaskstasksagentAgentIdsingleTaskId_Get + - plannedChangeInstances + summary: Removes a group or device from a planned change + description: Removes a group or device from a planned change + operationId: DeletePlannedChangeInstanceMemberdeleteMember_Get parameters: - - name: AgentId - in: query - description: Specifies the agent's AgentId. - schema: - type: string - - name: DeviceId - in: query - description: Specifies the agent's DeviceId. - schema: - type: string - - name: TaskStatuses - in: query - description: Specifies a value indicating the task statuses to filter by. - style: form - schema: - type: array - items: + - name: GroupName + in: query + description: Specifies the group to remove from the planned change. + schema: type: string - x-nullable: false - - name: TaskIds - in: query - description: Specifies value indicating the task ids to look for. - style: form - schema: - type: array - items: + - name: AgentDeviceId + in: query + description: Specifies individual device remove from the planned change. + schema: + type: string + - name: InstanceId + in: query + description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. + required: true + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: type: integer format: int32 - x-nullable: false - - name: PolicyRunId - in: query - description: Specifies the policy run id associated with the last run of the report etc. use this to find tasks started by a given scheduled policy. - schema: - type: integer - format: int32 - - name: TaskType - in: query - description: Specifies the specific task type to retrieve details for - schema: - type: string - - name: Concise - in: query - description: Return a concise view of the tasks? i.e not the Text and ResultData properties - schema: - type: boolean - x-nullable: false - - name: IgnoreActiveDates - in: query - description: By default only AgentTasks that are currently between their StartDate and EndDate values are returned, this flag returns tasks irrespective of dates. - schema: - type: boolean - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: - type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + x-nullable: false responses: - '200': - description: The response object for GetAgentTasks + '204': + description: No Content content: - application/json: - schema: - $ref: '#/components/schemas/GetAgentTasksResponse' + application/json: { } + security: + - Bearer: [ ] + post: + tags: + - plannedChangeInstances + summary: Removes a group or device from a planned change + description: Removes a group or device from a planned change + operationId: DeletePlannedChangeInstanceMemberdeleteMember_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DeletePlannedChangeInstanceMember' + x-bodyName: body + responses: + '204': + description: No Content + content: + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /command/tasks/agent/legacy/{LegacyId}/all/{AllTasks}: + - $ref: '#/components/parameters/Accept' + /plannedChangeInstances/add: get: tags: - - command - summary: Requests information about tasks for the given agent - description: Requests information about tasks for the given agent. - operationId: GetAgentTaskstasksagentlegacyLegacyIdallAllTasks_Get + - plannedChangeInstances + summary: Add a planned change instance. + description: Add a planned change instance. + operationId: AddPlannedChangeInstanceadd_Get parameters: - - name: AgentId - in: query - description: Specifies the agent's AgentId. - schema: - type: string - - name: DeviceId - in: query - description: Specifies the agent's DeviceId. - schema: - type: string - - name: TaskStatuses - in: query - description: Specifies a value indicating the task statuses to filter by. - style: form - schema: - type: array - items: + - name: PlannedChangeName + in: query + description: 'Specifies the planned change definition name. Optional, if not supplied a new empty planned change ruleset is created and returned in the response.' + schema: type: string - x-nullable: false - - name: TaskIds - in: query - description: Specifies value indicating the task ids to look for. - style: form - schema: - type: array - items: + - name: DisplayName + in: query + description: Specifies the DisplayName. Required. + schema: + type: string + - name: Description + in: query + description: Specifies the description. Required. + schema: + type: string + - name: AssignedTo + in: query + description: Specifies the Assigned To Name. + schema: + type: string + - name: Origin + in: query + description: 'Specifies the origin of the planned change. Optional, this can be ''Interactive'' for UI created, or the name of an ITSM instance when created by sync service.' + schema: + type: string + - name: MemberGroups + in: query + description: Specifies the groups that are members of the planned change. Optional. + style: form + schema: + type: array + items: + type: string + - name: MemberAgentDeviceIds + in: query + description: Specifies the devices that are explicit members of the planned change. Optional. + style: form + schema: + type: array + items: + type: string + - name: StartTimeUtc + in: query + description: Specifies the UTC start time of the instance. Optional. + schema: + type: string + format: date-time + - name: EndTimeUtc + in: query + description: Specifies the UTC end time of the instance. Optional. + schema: + type: string + format: date-time + - name: PeriodicityCount + in: query + description: Specifies a value indicating the periodicity of the planned change. When PeriodicityCount is greater then zero the planned change is active every PeriodicityCount PeriodicityUnits for PeriodDurationCount PeriodDurationUnits starting from StartTimeUtc. + schema: type: integer format: int32 - x-nullable: false - - name: PolicyRunId - in: query - description: Specifies the policy run id associated with the last run of the report etc. use this to find tasks started by a given scheduled policy. - schema: - type: integer - format: int32 - - name: TaskType - in: query - description: Specifies the specific task type to retrieve details for - schema: - type: string - - name: Concise - in: query - description: Return a concise view of the tasks? i.e not the Text and ResultData properties - schema: - type: boolean - x-nullable: false - - name: IgnoreActiveDates - in: query - description: By default only AgentTasks that are currently between their StartDate and EndDate values are returned, this flag returns tasks irrespective of dates. - schema: - type: boolean - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: - type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + x-nullable: false + - name: PeriodicityUnit + in: query + description: Specifies a value indicating the periodicity unit. + schema: + enum: + - None + - Second + - Minute + - Hour + - Day + - Week + type: string + x-nullable: false + - name: PeriodDurationCount + in: query + description: Specifies a value indicating the period duration of the planned change. When PeriodicityCount is greater then zero the planned change is active every PeriodicityCount PeriodicityUnits for PeriodDurationCount PeriodDurationUnits starting from StartTimeUtc. + schema: + type: integer + format: int32 + x-nullable: false + - name: PeriodDurationUnit + in: query + description: Specifies a value indicating the period duration unit. + schema: + enum: + - None + - Second + - Minute + - Hour + - Day + - Week + type: string + x-nullable: false + - name: Disabled + in: query + description: Specifies a value indicating whether to create the planned change instance in a disabled state. + schema: + type: boolean + x-nullable: false + - name: DisallowRules + in: query + description: 'Specifies a value indicating whether the planned change is allowed to have rules, or is a just container for manually added events.' + schema: + type: boolean + x-nullable: false + - name: UseAttributeRules + in: query + description: 'TODO: How do we deal with this? TEMP used to trigger the new file hash based attribute rule generation. Eventually this will be the norm and this property can be removed.' + schema: + type: boolean + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: The response object for GetAgentTasks + description: 'Describes planned change instances, filtered by name, id or groups that are members.' content: application/json: schema: - $ref: '#/components/schemas/GetAgentTasksResponse' + $ref: '#/components/schemas/GetPlannedChangesInstancesResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /command/tasks/agent/legacy/{LegacyId}/single/{TaskId}: - get: + - Bearer: [ ] + post: tags: - - command - summary: Requests information about tasks for the given agent - description: Requests information about tasks for the given agent. - operationId: GetAgentTaskstasksagentlegacyLegacyIdsingleTaskId_Get - parameters: - - name: AgentId - in: query - description: Specifies the agent's AgentId. - schema: - type: string - - name: DeviceId - in: query - description: Specifies the agent's DeviceId. - schema: - type: string - - name: TaskStatuses - in: query - description: Specifies a value indicating the task statuses to filter by. - style: form - schema: - type: array - items: - type: string - x-nullable: false - - name: TaskIds - in: query - description: Specifies value indicating the task ids to look for. - style: form - schema: - type: array - items: - type: integer - format: int32 - x-nullable: false - - name: PolicyRunId - in: query - description: Specifies the policy run id associated with the last run of the report etc. use this to find tasks started by a given scheduled policy. - schema: - type: integer - format: int32 - - name: TaskType - in: query - description: Specifies the specific task type to retrieve details for - schema: - type: string - - name: Concise - in: query - description: Return a concise view of the tasks? i.e not the Text and ResultData properties - schema: - type: boolean - x-nullable: false - - name: IgnoreActiveDates - in: query - description: By default only AgentTasks that are currently between their StartDate and EndDate values are returned, this flag returns tasks irrespective of dates. - schema: - type: boolean - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: - type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - plannedChangeInstances + summary: Add a planned change instance. + description: Add a planned change instance. + operationId: AddPlannedChangeInstanceadd_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/AddPlannedChangeInstance' + x-bodyName: body responses: '200': - description: The response object for GetAgentTasks + description: 'Describes planned change instances, filtered by name, id or groups that are members.' content: application/json: schema: - $ref: '#/components/schemas/GetAgentTasksResponse' + $ref: '#/components/schemas/GetPlannedChangesInstancesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /downloadFileHash/{HostType}/{OperatingSystem}/{Variant}: + - $ref: '#/components/parameters/Accept' + /plannedChangeInstances/update: get: tags: - - downloadFileHash - summary: Download the filehasing utility app for remote monitoring - description: Download the filehasing utility app for remote monitoring. - operationId: DownloadFileHashBinaryHostTypeOperatingSystemVariant_Get + - plannedChangeInstances + summary: Update a planned change instance + description: Update a planned change instance + operationId: UpdatePlannedChangeInstanceupdate_Get parameters: - - name: ReturnUrl - in: query - description: Specifies a flag that indicates wether or not to return a URL or the file directly - schema: - type: boolean - x-nullable: false - - name: HostType - in: query - description: Specifies the host type the file hash binary is required for (e.g Unix, Windows etc) - schema: - enum: - - Unknown - - Unix - - Windows - - Network - - Database - - Cloud - - ESX - - Splunk - type: string - x-nullable: false - - name: OperatingSystem - in: query - description: Specifies the operating system naame (as defined in KnownOsNames). Optional - schema: - type: string - - name: Variant - in: query - description: Specifies the operating system / host variant. e.g x64, 10 SPARC etc - schema: - type: string - - name: FileId - in: query - description: Specifies the specific file id - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: InstanceId + in: query + description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. + required: true + schema: + type: string + - name: Description + in: query + description: Specifies the description. Optional. + schema: + type: string + - name: PlannedChangeName + in: query + description: Specifies the id (Name) of the ruleset used by this planned change. Optional. + schema: + type: string + - name: AssignedTo + in: query + description: Specifies the Assigned To Name. + schema: + type: string + - name: MemberGroups + in: query + description: Specifies the groups that are members of the planned change. Optional. + style: form + schema: + type: array + items: + type: string + - name: StartTimeUtc + in: query + description: Specifies the UTC start time of the instance. Optional. + schema: + type: string + format: date-time + - name: EndTimeUtc + in: query + description: Specifies the UTC end time of the instance. Optional. + schema: + type: string + format: date-time + - name: Started + in: query + description: Specifies a value indicating whether the planned change has been started. Optional. + schema: + type: boolean + - name: Ended + in: query + description: Specifies a value indicating whether the planned change has been ended. Optional. + schema: + type: boolean + - name: Disabled + in: query + description: Specifies a value indicating whether the planned change instance is disabled. Optional. + schema: + type: boolean + - name: DisallowRules + in: query + description: 'Specifies a value indicating whether the planned change is allowed to have rules, or is a just container for manually added events. Optional.' + schema: + type: boolean + - name: PeriodicityCount + in: query + description: Specifies a value indicating the periodicity of the planned change. When PeriodicityCount is greater then zero the planned change is active every PeriodicityCount PeriodicityUnits for PeriodDurationCount PeriodDurationUnits starting from StartTimeUtc. + schema: + type: integer + format: int32 + - name: PeriodicityUnit + in: query + description: Specifies a value indicating the periodicity unit. + schema: + type: string + - name: PeriodDurationCount + in: query + description: Specifies a value indicating the period duration of the planned change. When PeriodicityCount is greater then zero the planned change is active every PeriodicityCount PeriodicityUnits for PeriodDurationCount PeriodDurationUnits starting from StartTimeUtc. + schema: + type: integer + format: int32 + - name: PeriodDurationUnit + in: query + description: Specifies a value indicating the period duration unit. + schema: + type: string + - name: DisplayName + in: query + description: Specifies the Display Name. + schema: + type: string + - name: MemberAgentDeviceIds + in: query + description: Specifies the devices that are explicit members of the planned change. Optional. + style: form + schema: + type: array + items: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Success + description: 'Describes planned change instances, filtered by name, id or groups that are members.' content: application/json: schema: - $ref: '#/components/schemas/Object' + $ref: '#/components/schemas/GetPlannedChangesInstancesResponse' security: - - Bearer: [] + - Bearer: [ ] post: tags: - - downloadFileHash - summary: Download the filehasing utility app for remote monitoring - description: Download the filehasing utility app for remote monitoring. - operationId: DownloadFileHashBinaryHostTypeOperatingSystemVariant_Post + - plannedChangeInstances + summary: Update a planned change instance + description: Update a planned change instance + operationId: UpdatePlannedChangeInstanceupdate_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/DownloadFileHashBinary' + $ref: '#/components/schemas/UpdatePlannedChangeInstance' x-bodyName: body responses: '200': - description: Success + description: 'Describes planned change instances, filtered by name, id or groups that are members.' content: application/json: schema: - $ref: '#/components/schemas/Object' + $ref: '#/components/schemas/GetPlannedChangesInstancesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /downloadFileHashById/{FileId}: + - $ref: '#/components/parameters/Accept' + /plannedChangeInstances/clone: get: tags: - - downloadFileHashById - summary: Download the filehasing utility app for remote monitoring - description: Download the filehasing utility app for remote monitoring. - operationId: DownloadFileHashBinaryFileId_Get + - plannedChangeInstances + summary: Clone a planned change instance. + description: Clone a planned change instance. + operationId: ClonePlannedChangeInstanceclone_Get parameters: - - name: ReturnUrl - in: query - description: Specifies a flag that indicates wether or not to return a URL or the file directly - schema: - type: boolean - x-nullable: false - - name: HostType - in: query - description: Specifies the host type the file hash binary is required for (e.g Unix, Windows etc) - schema: - enum: - - Unknown - - Unix - - Windows - - Network - - Database - - Cloud - - ESX - - Splunk - type: string - x-nullable: false - - name: OperatingSystem - in: query - description: Specifies the operating system naame (as defined in KnownOsNames). Optional - schema: - type: string - - name: Variant - in: query - description: Specifies the operating system / host variant. e.g x64, 10 SPARC etc - schema: - type: string - - name: FileId - in: query - description: Specifies the specific file id - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: InstanceId + in: query + description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. + required: true + schema: + type: string + - name: CloneDefinition + in: query + description: Specifies the whether to clone the associated PlannedChangeDefinition + schema: + type: boolean + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Success + description: 'Describes planned change instances, filtered by name, id or groups that are members.' content: application/json: schema: - $ref: '#/components/schemas/Object' + $ref: '#/components/schemas/GetPlannedChangesInstancesResponse' security: - - Bearer: [] + - Bearer: [ ] post: tags: - - downloadFileHashById - summary: Download the filehasing utility app for remote monitoring - description: Download the filehasing utility app for remote monitoring. - operationId: DownloadFileHashBinaryFileId_Post + - plannedChangeInstances + summary: Clone a planned change instance. + description: Clone a planned change instance. + operationId: ClonePlannedChangeInstanceclone_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/DownloadFileHashBinary' + $ref: '#/components/schemas/ClonePlannedChangeInstance' x-bodyName: body responses: '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/Object' - security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /getFileHashBinaries: - get: - tags: - - getFileHashBinaries - summary: Retrieves the list of file hash binaries available to download from the hub - description: Retrieves the list of file hash binaries available to download from the hub. - operationId: GetFileHashBinaries_Get - parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false - responses: - '200': - description: Success + description: 'Describes planned change instances, filtered by name, id or groups that are members.' content: application/json: schema: - title: List - type: array - items: - $ref: '#/components/schemas/FileHashBinary' + $ref: '#/components/schemas/GetPlannedChangesInstancesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /plannedChangeInstances/members: + - $ref: '#/components/parameters/Accept' + /plannedChangeInstances/nameValue: get: tags: - - plannedChangeInstances - summary: Gets the group and device members of the specified planned change instance - description: Gets the group and device members of the specified planned change instance. - operationId: GetPlannedChangeInstanceMembersmembers_Get + - plannedChangeInstances + summary: 'Gets planned change instances name and id, filtering by name, id or groups that are members.' + description: 'Gets planned change instances name and id, filtering by name, id or groups that are members.' + operationId: GetPlannedChangeInstancesNameValuenameValue_Get parameters: - - name: InstanceId - in: query - description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. - required: true - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: InstanceIds + in: query + description: Specifies the instance id. Optional. + style: form + schema: + type: array + items: + type: string + - name: MemberGroups + in: query + description: Specifies the member groups to filter by. This is a list of groups that are members of the planned changes instances returned. Optional. + style: form + schema: + type: array + items: + type: string + - name: MemberAgentDeviceIds + in: query + description: Specifies the ids of member devices. + style: form + schema: + type: array + items: + type: string + - name: Description + in: query + description: Specifies the planned change instance description to find. Optional. + schema: + type: string + - name: PlannedChangeName + in: query + description: Specifies the planned change definition name to find instances of. Optional. + schema: + type: string + - name: DisplayName + in: query + description: Specifies the planned change display name to find instances of. Optional. + schema: + type: string + - name: DisplayNameContains + in: query + description: Specifies the planned change instance name fragment to find. Optional. + schema: + type: string + - name: ExcludeDisabled + in: query + description: 'Specifies a value indicating whether to exclude disabled instances from the list. Optional, defaults to false.' + schema: + type: boolean + x-nullable: false + - name: ExcludeOutOfSchedule + in: query + description: 'Specifies a value indicating whether to exclude instances whose schedule is not currently active from the list. Optional, defaults to false.' + schema: + type: boolean + x-nullable: false + - name: DisallowRules + in: query + description: Specifies an optional value indicating whether the planned change instances returned are allowed to have rules. + schema: + type: boolean + - name: StartDateUtc + in: query + description: Gets or sets the Date/Time of the start date UTC of the Planned Changes to be returned. + schema: + type: string + format: date-time + - name: EndDateUtc + in: query + description: Gets or sets the Date/Time of the end date UTC of the Planned Changes to be returned. + schema: + type: string + format: date-time + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Success + description: 'Describes planned change instances, filtered by name, id or groups that are members.' content: application/json: schema: - $ref: '#/components/schemas/GetPlannedChangeInstanceMembersResponse' + $ref: '#/components/schemas/GetPlannedChangeInstancesNameValueResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /plannedChangeInstances/delete: + - Bearer: [ ] post: tags: - - plannedChangeInstances - summary: Deletes an instance of a planned change from the system - description: Deletes an instance of a planned change from the system. - operationId: DeletePlannedChangeInstancedelete_Post + - plannedChangeInstances + summary: 'Gets planned change instances name and id, filtering by name, id or groups that are members.' + description: 'Gets planned change instances name and id, filtering by name, id or groups that are members.' + operationId: GetPlannedChangeInstancesNameValuenameValue_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/DeletePlannedChangeInstance' + $ref: '#/components/schemas/GetPlannedChangeInstancesNameValue' x-bodyName: body responses: - '204': - description: No Content + '200': + description: 'Describes planned change instances, filtered by name, id or groups that are members.' content: - application/json: {} + application/json: + schema: + $ref: '#/components/schemas/GetPlannedChangeInstancesNameValueResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /plannedChangeInstances/deleteMember: - post: + - $ref: '#/components/parameters/Accept' + /plannedChangeInstances/addMembers: + get: tags: - - plannedChangeInstances - summary: Removes a group or device from a planned change - description: Removes a group or device from a planned change - operationId: DeletePlannedChangeInstanceMemberdeleteMember_Post - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/DeletePlannedChangeInstanceMember' - x-bodyName: body + - plannedChangeInstances + summary: Add a list of groups to a planned change + description: Add a list of groups to a planned change + operationId: AddPlannedChangeInstanceMemberaddMembers_Get + parameters: + - name: MemberGroups + in: query + description: Specifies names of groups of devices to add to the planned change. + style: form + schema: + type: array + items: + type: string + - name: MemberAgentDeviceIds + in: query + description: Specifies individual device ids to add to the planned change. + style: form + schema: + type: array + items: + type: string + - name: InstanceId + in: query + description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. + required: true + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /plannedChangeInstances/add: + - Bearer: [ ] post: tags: - - plannedChangeInstances - summary: Add a planned change instance - description: Add a planned change instance. - operationId: AddPlannedChangeInstanceadd_Post + - plannedChangeInstances + summary: Add a list of groups to a planned change + description: Add a list of groups to a planned change + operationId: AddPlannedChangeInstanceMemberaddMembers_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/AddPlannedChangeInstance' + $ref: '#/components/schemas/AddPlannedChangeInstanceMember' x-bodyName: body responses: - '200': - description: Describes planned change instances, filtered by name, id or groups that are members. + '204': + description: No Content content: - application/json: - schema: - $ref: '#/components/schemas/GetPlannedChangesInstancesResponse' + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /plannedChangeInstances/update: - post: + - $ref: '#/components/parameters/Accept' + /plannedChangeInstances/addOrUpdateFromEvents: + get: tags: - - plannedChangeInstances - summary: Update a planned change instance - description: Update a planned change instance - operationId: UpdatePlannedChangeInstanceupdate_Post - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdatePlannedChangeInstance' - x-bodyName: body + - plannedChangeInstances + summary: A request to add a new planned change and planned change instance based on the given events. + description: A request to add a new planned change and planned change instance based on the given events. + operationId: AddOrUpdatePlannedChangeInstanceFromEventsaddOrUpdateFromEvents_Get + parameters: + - name: AllEventsSelected + in: query + description: Indicates that the All Events option has been selected. + schema: + type: boolean + x-nullable: false + - name: EventsQuery + in: query + description: Specifies the events query criteria which is a requirement when AllEventsSelected is true. + schema: + $ref: '#/components/schemas/GetEvents' + - name: Name + in: query + description: Specifies the name of the 'PlannedChangeDefinition' to create. + schema: + type: string + - name: UpdateExisting + in: query + description: Specifies the flag indicating whether or not we're updating an existing planned change + schema: + type: boolean + x-nullable: false + - name: UseMinimumRules + in: query + description: Specifies a value indicating whether to use the minimum possible number rules to match the items. + schema: + type: boolean + x-nullable: false + - name: InstanceId + in: query + description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. + required: true + schema: + type: string + - name: MemberGroups + in: query + description: Specifies the groups that are members of the planned change. Optional. + style: form + schema: + type: array + items: + type: string + - name: MemberAgentDeviceIds + in: query + description: Specifies the devices that are explicit members of the planned change. Optional. + style: form + schema: + type: array + items: + type: string + - name: ReconsiderEventsFromUtc + in: query + description: Specifies the UTC time to reconsider matching events from. If null no events are reprocessed. + schema: + type: string + format: date-time + - name: RuleBuilderItems + in: query + description: Specifies the events that make up the initial filter rules of the new 'PlannedChangeInstance'. The matching 'PlannedChangeFilterRuleInferenceOptions' provide details about how the event filter rule is to be constructed. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/RuleBuilderItem' + - name: PreviewOnly + in: query + description: Specifies a value indicating whether to preview the settings for the resulting 'PlannedChangeInstance' or to really created it + schema: + type: boolean + x-nullable: false + - name: EndDateUtc + in: query + description: Specifies the UTC end date for the new PlannedChangeInstance. If this is null the PlannedChangeInstance is open-ended. + schema: + type: string + format: date-time + - name: Origin + in: query + description: 'Specifies the origin of the planned change. Optional, this can be ''Interactive'' for UI created, or the name of an ITSM instance when creates by sync service.' + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Describes planned change instances, filtered by name, id or groups that are members. + description: Success content: application/json: schema: - $ref: '#/components/schemas/GetPlannedChangesInstancesResponse' + $ref: '#/components/schemas/AddOrUpdatePlannedChangeInstanceFromEventsResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /plannedChangeInstances/clone: + - Bearer: [ ] post: tags: - - plannedChangeInstances - summary: Clone a planned change instance - description: Clone a planned change instance. - operationId: ClonePlannedChangeInstanceclone_Post + - plannedChangeInstances + summary: A request to add a new planned change and planned change instance based on the given events. + description: A request to add a new planned change and planned change instance based on the given events. + operationId: AddOrUpdatePlannedChangeInstanceFromEventsaddOrUpdateFromEvents_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/ClonePlannedChangeInstance' + $ref: '#/components/schemas/AddOrUpdatePlannedChangeInstanceFromEvents' x-bodyName: body responses: '200': - description: Describes planned change instances, filtered by name, id or groups that are members. + description: Success content: application/json: schema: - $ref: '#/components/schemas/GetPlannedChangesInstancesResponse' + $ref: '#/components/schemas/AddOrUpdatePlannedChangeInstanceFromEventsResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /plannedChangeInstances/nameValue: + - $ref: '#/components/parameters/Accept' + /plannedChangeInstances/reevaluateEvents: get: tags: - - plannedChangeInstances - summary: Gets planned change instances name and id, filtering by name, id or groups that are members. - description: Gets planned change instances name and id, filtering by name, id or groups that are members. - operationId: GetPlannedChangeInstancesNameValuenameValue_Get + - plannedChangeInstances + summary: A request to re-evaluate the events associated with the specified planned change. + description: A request to re-evaluate the events associated with the specified planned change. + operationId: AddReEvaluationOfPlannedChangeInstanceEventsreevaluateEvents_Get parameters: - - name: InstanceIds - in: query - description: Specifies the instance id. Optional. - style: form - schema: - type: array - items: - type: string - - name: MemberGroups - in: query - description: Specifies the member groups to filter by. This is a list of groups that are members of the planned changes instances returned. Optional. - style: form - schema: - type: array - items: + - name: InstanceId + in: query + description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. + required: true + schema: type: string - - name: MemberAgentDeviceIds - in: query - description: Specifies the ids of member devices. - style: form - schema: - type: array - items: + - name: EarliestEventTimeUtc + in: query + description: Specifies the earliest UTC event time. This is the time of earliest events to re-consider for retrospective inclusion in the planned change. + schema: type: string - - name: Description - in: query - description: Specifies the planned change instance description to find. Optional. - schema: - type: string - - name: PlannedChangeName - in: query - description: Specifies the planned change definition name to find instances of. Optional. - schema: - type: string - - name: DisplayName - in: query - description: Specifies the planned change display name to find instances of. Optional. - schema: - type: string - - name: DisplayNameContains - in: query - description: Specifies the planned change instance name fragment to find. Optional. - schema: - type: string - - name: ExcludeDisabled - in: query - description: Specifies a value indicating whether to exclude disabled instances from the list. Optional, defaults to false. - schema: - type: boolean - x-nullable: false - - name: ExcludeOutOfSchedule - in: query - description: Specifies a value indicating whether to exclude instances whose schedule is not currently active from the list. Optional, defaults to false. - schema: - type: boolean - x-nullable: false - - name: DisallowRules - in: query - description: Specifies an optional value indicating whether the planned change instances returned are allowed to have rules. - schema: - type: boolean - - name: StartDateUtc - in: query - description: Gets or sets the Date/Time of the start date UTC of the Planned Changes to be returned. - schema: - type: string - format: date-time - - name: EndDateUtc - in: query - description: Gets or sets the Date/Time of the end date UTC of the Planned Changes to be returned. - schema: - type: string - format: date-time - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + format: date-time + - name: LastEventTimeUtc + in: query + description: Specifies the latest UTC event time. This is the time of the last events to re-consider for retrospective inclusion in the planned change. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + format: date-time + - name: PlannedChangeManual + in: query + description: Indicates whether to further restrict the event query to events that were either added to the planned change manually or not (i.e. were added by a rule) + schema: + type: boolean + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: - '200': - description: Describes planned change instances, filtered by name, id or groups that are members. + '204': + description: No Content content: - application/json: - schema: - $ref: '#/components/schemas/GetPlannedChangeInstancesNameValueResponse' + application/json: { } security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /plannedChangeInstances/addMembers: + - Bearer: [ ] post: tags: - - plannedChangeInstances - summary: Add a list of groups to a planned change - description: Add a list of groups to a planned change - operationId: AddPlannedChangeInstanceMemberaddMembers_Post + - plannedChangeInstances + summary: A request to re-evaluate the events associated with the specified planned change. + description: A request to re-evaluate the events associated with the specified planned change. + operationId: AddReEvaluationOfPlannedChangeInstanceEventsreevaluateEvents_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/AddPlannedChangeInstanceMember' + $ref: '#/components/schemas/AddReEvaluationOfPlannedChangeInstanceEvents' x-bodyName: body responses: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /plannedChangeInstances/addOrUpdateFromEvents: - post: + - $ref: '#/components/parameters/Accept' + /plannedChangeInstances: + get: tags: - - plannedChangeInstances - summary: A request to add a new planned change and planned change instance based on the given events - description: A request to add a new planned change and planned change instance based on the given events. - operationId: AddOrUpdatePlannedChangeInstanceFromEventsaddOrUpdateFromEvents_Post - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/AddOrUpdatePlannedChangeInstanceFromEvents' - x-bodyName: body + - plannedChangeInstances + summary: 'Gets planned change instances, filtering by name, id or groups that are members.' + description: 'Gets planned change instances, filtering by name, id or groups that are members.' + operationId: GetPlannedChangeInstances_Get + parameters: + - name: InstanceIds + in: query + description: Specifies the instance id. Optional. + style: form + schema: + type: array + items: + type: string + - name: MemberGroups + in: query + description: Specifies the member groups to filter by. This is a list of groups that are members of the planned changes instances returned. Optional. + style: form + schema: + type: array + items: + type: string + - name: MemberAgentDeviceIds + in: query + description: Specifies the ids of member devices. + style: form + schema: + type: array + items: + type: string + - name: Description + in: query + description: Specifies the planned change instance description to find. Optional. + schema: + type: string + - name: PlannedChangeName + in: query + description: Specifies the planned change definition name to find instances of. Optional. + schema: + type: string + - name: DisplayName + in: query + description: Specifies the planned change display name to find instances of. Optional. + schema: + type: string + - name: DisplayNameContains + in: query + description: Specifies the planned change instance name fragment to find. Optional. + schema: + type: string + - name: ExcludeDisabled + in: query + description: 'Specifies a value indicating whether to exclude disabled instances from the list. Optional, defaults to false.' + schema: + type: boolean + x-nullable: false + - name: ExcludeOutOfSchedule + in: query + description: 'Specifies a value indicating whether to exclude instances whose schedule is not currently active from the list. Optional, defaults to false.' + schema: + type: boolean + x-nullable: false + - name: DisallowRules + in: query + description: Specifies an optional value indicating whether the planned change instances returned are allowed to have rules. + schema: + type: boolean + - name: OmitPlannedChangeDefinitions + in: query + description: 'Specifies an optional value indicating whether to omit returning the PlannedChangeDefinition on the returned PlannedChangeInstance, useful if you only want a list of instances without the potentially large definitions embedded.' + schema: + type: boolean + x-nullable: false + - name: StartDateUtc + in: query + description: Gets or sets the Date/Time of the start date UTC of the Planned Changes to be returned. + schema: + type: string + format: date-time + - name: EndDateUtc + in: query + description: Gets or sets the Date/Time of the end date UTC of the Planned Changes to be returned. + schema: + type: string + format: date-time + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Success + description: 'Describes planned change instances, filtered by name, id or groups that are members.' content: application/json: schema: - $ref: '#/components/schemas/AddOrUpdatePlannedChangeInstanceFromEventsResponse' + $ref: '#/components/schemas/GetPlannedChangesInstancesResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /plannedChangeInstances/reevaluateEvents: + - Bearer: [ ] post: tags: - - plannedChangeInstances - summary: A request to re-evaluate the events associated with the specified planned change - description: A request to re-evaluate the events associated with the specified planned change. - operationId: AddReEvaluationOfPlannedChangeInstanceEventsreevaluateEvents_Post + - plannedChangeInstances + summary: 'Gets planned change instances, filtering by name, id or groups that are members.' + description: 'Gets planned change instances, filtering by name, id or groups that are members.' + operationId: GetPlannedChangeInstances_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/AddReEvaluationOfPlannedChangeInstanceEvents' + $ref: '#/components/schemas/GetPlannedChangeInstances' x-bodyName: body responses: - '204': - description: No Content + '200': + description: 'Describes planned change instances, filtered by name, id or groups that are members.' content: - application/json: {} + application/json: + schema: + $ref: '#/components/schemas/GetPlannedChangesInstancesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /plannedChangeInstances: + - $ref: '#/components/parameters/Accept' + /plannedChanges/add: get: tags: - - plannedChangeInstances - summary: Gets planned change instances, filtering by name, id or groups that are members. - description: Gets planned change instances, filtering by name, id or groups that are members. - operationId: GetPlannedChangeInstances_Get + - plannedChanges + summary: Add a planned change definition. + description: Add a planned change definition. + operationId: AddPlannedChangeadd_Get parameters: - - name: InstanceIds - in: query - description: Specifies the instance id. Optional. - style: form - schema: - type: array - items: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + - name: Name + in: query + description: Specifies the internally identifying name. + schema: type: string - - name: MemberGroups - in: query - description: Specifies the member groups to filter by. This is a list of groups that are members of the planned changes instances returned. Optional. - style: form - schema: - type: array - items: + - name: DisplayName + in: query + description: Specifies the display name. + schema: type: string - - name: MemberAgentDeviceIds - in: query - description: Specifies the ids of member devices. - style: form - schema: - type: array - items: + - name: Description + in: query + description: Specifies the description text. + schema: type: string - - name: Description - in: query - description: Specifies the planned change instance description to find. Optional. - schema: - type: string - - name: PlannedChangeName - in: query - description: Specifies the planned change definition name to find instances of. Optional. - schema: - type: string - - name: DisplayName - in: query - description: Specifies the planned change display name to find instances of. Optional. - schema: - type: string - - name: DisplayNameContains - in: query - description: Specifies the planned change instance name fragment to find. Optional. - schema: - type: string - - name: ExcludeDisabled - in: query - description: Specifies a value indicating whether to exclude disabled instances from the list. Optional, defaults to false. - schema: - type: boolean - x-nullable: false - - name: ExcludeOutOfSchedule - in: query - description: Specifies a value indicating whether to exclude instances whose schedule is not currently active from the list. Optional, defaults to false. - schema: - type: boolean - x-nullable: false - - name: DisallowRules - in: query - description: Specifies an optional value indicating whether the planned change instances returned are allowed to have rules. - schema: - type: boolean - - name: OmitPlannedChangeDefinitions - in: query - description: Specifies an optional value indicating whether to omit returning the PlannedChangeDefinition on the returned PlannedChangeInstance, useful if you only want a list of instances without the potentially large definitions embedded. - schema: - type: boolean - x-nullable: false - - name: StartDateUtc - in: query - description: Gets or sets the Date/Time of the start date UTC of the Planned Changes to be returned. - schema: - type: string - format: date-time - - name: EndDateUtc - in: query - description: Gets or sets the Date/Time of the end date UTC of the Planned Changes to be returned. - schema: - type: string - format: date-time - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: Origin + in: query + description: 'Specifies the origin of the planned change ruleset. Optional, this can be ''Interactive'' for UI created, or the name of an ITSM instance when creates by sync service.' + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: CreationDateUtc + in: query + description: Specifies the UTC creation date of the planned change. + schema: + type: string + format: date-time + x-nullable: false + - name: LastModifiedDateUtc + in: query + description: Specifies the UTC last modified date of the planned change. + schema: + type: string + format: date-time + x-nullable: false + - name: DisallowRules + in: query + description: 'Specifies a value indicating whether the planned change is allowed to have rules, or is a just container for manually added events.' + schema: + type: boolean + x-nullable: false + - name: Rules + in: query + description: Specifies the dictionary of 'PlannedChangeRule.Id' to 'PlannedChangeRule' rules. + schema: + title: 'Dictionary' + type: object + additionalProperties: + $ref: '#/components/schemas/PlannedChangeRule' + description: 'Dictionary' + - name: RuleCombinationOperator + in: query + description: Specifies the rule combination operator. If this is And it means an event must satisfy all the'Rules'. + schema: + enum: + - And + - Or + - LogicExpression + type: string + x-nullable: false responses: '200': - description: Describes planned change instances, filtered by name, id or groups that are members. + description: Specifies returned a planned change definitions. content: application/json: schema: - $ref: '#/components/schemas/GetPlannedChangesInstancesResponse' + $ref: '#/components/schemas/GetPlannedChangesResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /plannedChanges/add: + - Bearer: [ ] post: tags: - - plannedChanges - summary: Add a planned change definition + - plannedChanges + summary: Add a planned change definition. description: Add a planned change definition. operationId: AddPlannedChangeadd_Post requestBody: @@ -6099,13 +9404,13 @@ paths: schema: $ref: '#/components/schemas/GetPlannedChangesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /plannedChanges/upload: post: tags: - - plannedChanges + - plannedChanges summary: Upload a planned change ruleset json file description: Upload a planned change ruleset json file operationId: UploadPlannedChangeupload_Post @@ -6119,43 +9424,43 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /plannedChanges/download: get: tags: - - plannedChanges + - plannedChanges summary: Download a planned change ruleset json file description: Download a planned change ruleset json file operationId: DownloadPlannedChangedownload_Get parameters: - - name: Id - in: query - description: Specifies the planned change rule set id - schema: - type: string - - name: IncludeAttributeRuleList - in: query - description: Specifies whether to return the List property for attribute list rules. Defaults to false. - schema: - type: boolean - x-nullable: false - - name: IncludeAttributeRuleText - in: query - description: Specifies whether to return the list in the MatchText property for attribute list rules. Defaults to true. - schema: - type: boolean - x-nullable: false - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Id + in: query + description: Specifies the planned change rule set id + schema: + type: string + - name: IncludeAttributeRuleList + in: query + description: Specifies whether to return the List property for attribute list rules. Defaults to false. + schema: + type: boolean + x-nullable: false + - name: IncludeAttributeRuleText + in: query + description: Specifies whether to return the list in the MatchText property for attribute list rules. Defaults to true. + schema: + type: boolean + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': description: Success @@ -6164,10 +9469,10 @@ paths: schema: $ref: '#/components/schemas/Object' security: - - Bearer: [] + - Bearer: [ ] post: tags: - - plannedChanges + - plannedChanges summary: Download a planned change ruleset json file description: Download a planned change ruleset json file operationId: DownloadPlannedChangedownload_Post @@ -6185,13 +9490,75 @@ paths: schema: $ref: '#/components/schemas/Object' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /plannedChanges/update: + get: + tags: + - plannedChanges + summary: Update a planned change definition + description: Update a planned change definition + operationId: UpdatePlannedChangeupdate_Get + parameters: + - name: Name + in: query + description: Specifies the internal Name identifying the planned change. This cannot be updated. + schema: + type: string + - name: DisplayName + in: query + description: Specifies the display name. + schema: + type: string + - name: Description + in: query + description: Specifies the description text. + schema: + type: string + - name: RuleCombinationOperator + in: query + description: Specifies the rule combination operator. If this is And it means an event must satisfy all the 'PlannedChangeDefinition.Rules'. + schema: + type: string + - name: DisallowRules + in: query + description: 'Specifies a value indicating whether the planned change is allowed to have rules, or is a just container for manually added events.' + schema: + type: boolean + - name: Rules + in: query + description: Specifies the dictionary of 'PlannedChangeRule.Id' to 'PlannedChangeRule' rules. + schema: + title: 'Dictionary' + type: object + additionalProperties: + $ref: '#/components/schemas/PlannedChangeRule' + description: 'Dictionary' + - name: Origin + in: query + description: 'Specifies the origin of the planned change update. Optional, this can be ''Interactive'' for UI created, or the name of an ITSM instance when updated by sync service.' + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Specifies returned a planned change definitions. + content: + application/json: + schema: + $ref: '#/components/schemas/GetPlannedChangesResponse' + security: + - Bearer: [ ] post: tags: - - plannedChanges + - plannedChanges summary: Update a planned change definition description: Update a planned change definition operationId: UpdatePlannedChangeupdate_Post @@ -6209,14 +9576,42 @@ paths: schema: $ref: '#/components/schemas/GetPlannedChangesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /plannedChanges/clone: + get: + tags: + - plannedChanges + summary: Clone a planned change definition. + description: Clone a planned change definition. + operationId: ClonePlannedChangeclone_Get + parameters: + - name: Name + in: query + description: Specifies the internal Name identifying the planned change to clone. This cannot be updated. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Specifies returned a planned change definitions. + content: + application/json: + schema: + $ref: '#/components/schemas/GetPlannedChangesResponse' + security: + - Bearer: [ ] post: tags: - - plannedChanges - summary: Clone a planned change definition + - plannedChanges + summary: Clone a planned change definition. description: Clone a planned change definition. operationId: ClonePlannedChangeclone_Post requestBody: @@ -6233,15 +9628,51 @@ paths: schema: $ref: '#/components/schemas/GetPlannedChangesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /plannedChanges/analyze: + get: + tags: + - plannedChanges + summary: 'Create rule reduction plans, which can be used to simplify rulesets associated with the specified planned change.' + description: 'Create rule reduction plans, which can be used to simplify rulesets associated with the specified planned change.' + operationId: AnalyzePlannedChangeanalyze_Get + parameters: + - name: Name + in: query + description: Specifies the planned change Name. This cannot be updated. + schema: + type: string + - name: ReduceRuleIds + in: query + description: Specifies the list of rule ids to be automatically reduced to the minimum set to catch at least the same events. For example two exact name matches of files in the same directory will be reduced to one rule that matches any file in the directory. + style: form + schema: + type: array + items: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/AnalyzePlannedChangeResponse' + security: + - Bearer: [ ] post: tags: - - plannedChanges - summary: Create rule reduction plans, which can be used to simplify rulesets associated with the specified planned change. - description: Create rule reduction plans, which can be used to simplify rulesets associated with the specified planned change. + - plannedChanges + summary: 'Create rule reduction plans, which can be used to simplify rulesets associated with the specified planned change.' + description: 'Create rule reduction plans, which can be used to simplify rulesets associated with the specified planned change.' operationId: AnalyzePlannedChangeanalyze_Post requestBody: content: @@ -6257,15 +9688,54 @@ paths: schema: $ref: '#/components/schemas/AnalyzePlannedChangeResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /plannedChanges/applyPlan: + get: + tags: + - plannedChanges + summary: 'Apply rule reduction plans to the specified planned change, simplifying the associated rulesets.' + description: 'Apply rule reduction plans to the specified planned change, simplifying the associated rulesets.' + operationId: ApplyPlannedChangePlanapplyPlan_Get + parameters: + - name: Name + in: query + description: Specifies the planned change Name. This cannot be updated. + schema: + type: string + - name: RuleIdsToRemove + in: query + description: Specifies the rule ids to remove. + style: form + schema: + type: array + items: + type: string + - name: RuleReductionPlan + in: query + description: Specifies the rule reduction plan. + schema: + $ref: '#/components/schemas/RuleReductionPlan2' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - plannedChanges - summary: Apply rule reduction plans to the specified planned change, simplifying the associated rulesets. - description: Apply rule reduction plans to the specified planned change, simplifying the associated rulesets. + - plannedChanges + summary: 'Apply rule reduction plans to the specified planned change, simplifying the associated rulesets.' + description: 'Apply rule reduction plans to the specified planned change, simplifying the associated rulesets.' operationId: ApplyPlannedChangePlanapplyPlan_Post requestBody: content: @@ -6277,15 +9747,36 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /plannedChanges/updateRule: + get: + tags: + - plannedChanges + summary: Updates a rule in a planned change + description: Updates a rule in a planned change + operationId: UpdatePlannedChangeRuleupdateRule_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - plannedChanges + - plannedChanges summary: Updates a rule in a planned change description: Updates a rule in a planned change operationId: UpdatePlannedChangeRuleupdateRule_Post @@ -6299,15 +9790,53 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /plannedChanges/updateRules: + get: + tags: + - plannedChanges + summary: Updates the entire rule set in a planned change + description: Updates the entire rule set in a planned change + operationId: UpdatePlannedChangeRulesupdateRules_Get + parameters: + - name: PlannedChangeName + in: query + description: Specifies the planned change definition name. + schema: + type: string + - name: Rules + in: query + description: Specifies the dictionary of 'PlannedChangeRule.Id' to 'PlannedChangeRule' rules. + schema: + title: 'Dictionary' + type: object + additionalProperties: + $ref: '#/components/schemas/PlannedChangeRule' + description: 'Dictionary' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: A named Planned Change definition. + content: + application/json: + schema: + $ref: '#/components/schemas/PlannedChangeDefinition' + deprecated: true + security: + - Bearer: [ ] post: tags: - - plannedChanges + - plannedChanges summary: Updates the entire rule set in a planned change description: Updates the entire rule set in a planned change operationId: UpdatePlannedChangeRulesupdateRules_Post @@ -6318,21 +9847,52 @@ paths: $ref: '#/components/schemas/UpdatePlannedChangeRules' x-bodyName: body responses: - '200': - description: A named Planned Change definition. + '200': + description: A named Planned Change definition. + content: + application/json: + schema: + $ref: '#/components/schemas/PlannedChangeDefinition' + deprecated: true + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /plannedChanges/deleteRule: + get: + tags: + - plannedChanges + summary: Removes a rule from a planned change + description: Removes a rule from a planned change + operationId: DeletePlannedChangeRuledeleteRule_Get + parameters: + - name: PlannedChangeName + in: query + description: Specifies the planned change definition name. + schema: + type: string + - name: Id + in: query + description: Specifies the rule id. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content content: - application/json: - schema: - $ref: '#/components/schemas/PlannedChangeDefinition' - deprecated: true + application/json: { } security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /plannedChanges/deleteRule: + - Bearer: [ ] post: tags: - - plannedChanges + - plannedChanges summary: Removes a rule from a planned change description: Removes a rule from a planned change operationId: DeletePlannedChangeRuledeleteRule_Post @@ -6346,16 +9906,42 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /plannedChanges/delete: + get: + tags: + - plannedChanges + summary: Delete a planned change ruleset definition from the system. + description: Delete a planned change ruleset definition from the system. + operationId: DeletePlannedChangedelete_Get + parameters: + - name: Name + in: query + description: Specifies the planned change ruleset definition name to remove. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - plannedChanges - summary: Delete a planned change ruleset definition from the system + - plannedChanges + summary: Delete a planned change ruleset definition from the system. description: Delete a planned change ruleset definition from the system. operationId: DeletePlannedChangedelete_Post requestBody: @@ -6368,15 +9954,48 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /plannedChangeRule/add: + get: + tags: + - plannedChangeRule + summary: Add a rule to a planned change + description: Add a rule to a planned change + operationId: AddPlannedChangeRuleadd_Get + parameters: + - name: PlannedChangeName + in: query + description: Specifies the name of the planned change to which the new rule will be added. + schema: + type: string + - name: Rule + in: query + description: Specifies the new rule being added. + schema: + $ref: '#/components/schemas/PlannedChangeRule' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The id of the new item created. + content: + application/json: + schema: + $ref: '#/components/schemas/NewId' + security: + - Bearer: [ ] post: tags: - - plannedChangeRule + - plannedChangeRule summary: Add a rule to a planned change description: Add a rule to a planned change operationId: AddPlannedChangeRuleadd_Post @@ -6394,84 +10013,105 @@ paths: schema: $ref: '#/components/schemas/NewId' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /plannedChanges: get: tags: - - plannedChanges - summary: Gets a list of planned change ruleset definitions, filtered by name or id. - description: Gets a list of planned change ruleset definitions, filtered by name or id. + - plannedChanges + summary: 'Gets a list of planned change ruleset definitions, filtered by name or id.' + description: 'Gets a list of planned change ruleset definitions, filtered by name or id.' operationId: GetPlannedChanges_Get parameters: - - name: Name - in: query - description: Specifies the planned change definition name to find. - schema: - type: string - - name: DisplayName - in: query - description: Specifies the planned change display name to find. - schema: - type: string - - name: DisplayNameContains - in: query - description: Specifies the partial planned change display name to find. - schema: - type: string - - name: DisallowRules - in: query - description: Specifies an optional value indicating whether the planned changes returned are allowed to have rules. - schema: - type: boolean - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: Name + in: query + description: Specifies the planned change definition name to find. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: DisplayName + in: query + description: Specifies the planned change display name to find. + schema: + type: string + - name: DisplayNameContains + in: query + description: Specifies the partial planned change display name to find. + schema: + type: string + - name: DisallowRules + in: query + description: Specifies an optional value indicating whether the planned changes returned are allowed to have rules. + schema: + type: boolean + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Specifies returned a planned change definitions. + content: + application/json: + schema: + $ref: '#/components/schemas/GetPlannedChangesResponse' + security: + - Bearer: [ ] + post: + tags: + - plannedChanges + summary: 'Gets a list of planned change ruleset definitions, filtered by name or id.' + description: 'Gets a list of planned change ruleset definitions, filtered by name or id.' + operationId: GetPlannedChanges_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetPlannedChanges' + x-bodyName: body responses: '200': description: Specifies returned a planned change definitions. @@ -6480,15 +10120,46 @@ paths: schema: $ref: '#/components/schemas/GetPlannedChangesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /commandParser/parse: + get: + tags: + - commandParser + summary: 'Attempts to parse the supplied commandline, returning a list of disallowed command fragments on failure.' + description: 'Attempts to parse the supplied commandline, returning a list of disallowed command fragments on failure.' + operationId: ParseCommandsparse_Get + parameters: + - name: CommandLines + in: query + description: Specifies the command line + style: form + schema: + type: array + items: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ParseCommandResponse' + security: + - Bearer: [ ] post: tags: - - commandParser - summary: Attempts to parse the supplied commandline, returning a list of disallowed command fragments on failure. - description: Attempts to parse the supplied commandline, returning a list of disallowed command fragments on failure. + - commandParser + summary: 'Attempts to parse the supplied commandline, returning a list of disallowed command fragments on failure.' + description: 'Attempts to parse the supplied commandline, returning a list of disallowed command fragments on failure.' operationId: ParseCommandsparse_Post requestBody: content: @@ -6504,24 +10175,24 @@ paths: schema: $ref: '#/components/schemas/ParseCommandResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /commandParser/whitelist: get: tags: - - commandParser - summary: Gets the whitelisted command component + - commandParser + summary: Gets the whitelisted command component. description: Gets the whitelisted command component. operationId: GetWhitelistedCommandComponentwhitelist_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': description: The paging response base. @@ -6530,11 +10201,11 @@ paths: schema: $ref: '#/components/schemas/WhitelistCommandComponentResponse' security: - - Bearer: [] + - Bearer: [ ] post: tags: - - commandParser - summary: Attempts to whitelist the supplied command component + - commandParser + summary: Attempts to whitelist the supplied command component. description: Attempts to whitelist the supplied command component. operationId: CreateWhitelistedCommandComponentwhitelist_Post requestBody: @@ -6551,64 +10222,64 @@ paths: schema: $ref: '#/components/schemas/WhitelistCommandComponentResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /commandParser/whitelist/all: get: tags: - - commandParser - summary: Attempts to get all the whitelisted command components + - commandParser + summary: Attempts to get all the whitelisted command components. description: Attempts to get all the whitelisted command components. operationId: GetAllWhitelistedCommandComponentswhitelistall_Get parameters: - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': description: The paging response base. @@ -6617,14 +10288,14 @@ paths: schema: $ref: '#/components/schemas/WhitelistCommandComponentResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /commandParser/whitelist/update: post: tags: - - commandParser - summary: Attempts to update the supplied command component by id + - commandParser + summary: Attempts to update the supplied command component by id. description: Attempts to update the supplied command component by id. operationId: UpdateWhitelistedCommandComponentwhitelistupdate_Post requestBody: @@ -6641,14 +10312,14 @@ paths: schema: $ref: '#/components/schemas/WhitelistCommandComponentResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /commandParser/whitelist/updateMany: post: tags: - - commandParser - summary: Attempts to bulk update the whitelisted command component with the supplied ids + - commandParser + summary: Attempts to bulk update the whitelisted command component with the supplied ids. description: Attempts to bulk update the whitelisted command component with the supplied ids. operationId: UpdateWhitelistedCommandComponentswhitelistupdateMany_Post requestBody: @@ -6665,14 +10336,14 @@ paths: schema: $ref: '#/components/schemas/WhitelistCommandComponentResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /commandParser/commandComponent/addTemplates: post: tags: - - commandParser - summary: Adds the given template(s) to a command component + - commandParser + summary: Adds the given template(s) to a command component. description: Adds the given template(s) to a command component. operationId: AddTemplatesToCommandComponentcommandComponentaddTemplates_Post requestBody: @@ -6689,14 +10360,14 @@ paths: schema: $ref: '#/components/schemas/CommandComponentTemplateResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /commandParser/commandComponent/removeTemplates: post: tags: - - commandParser - summary: Attempts to remove the given template(s) from a command component + - commandParser + summary: Attempts to remove the given template(s) from a command component. description: Attempts to remove the given template(s) from a command component. operationId: RemoveTemplatesFromCommandComponentcommandComponentremoveTemplates_Post requestBody: @@ -6713,64 +10384,64 @@ paths: schema: $ref: '#/components/schemas/CommandComponentTemplateResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /commandParser/commandComponent/templates: get: tags: - - commandParser - summary: Gets all templates of a command component + - commandParser + summary: Gets all templates of a command component. description: Gets all templates of a command component. operationId: GetAllCommandComponentTemplatescommandComponenttemplates_Get parameters: - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': description: The paging response base. @@ -6779,12 +10450,12 @@ paths: schema: $ref: '#/components/schemas/GetAllCommandComponentTemplatesResponse' security: - - Bearer: [] + - Bearer: [ ] post: tags: - - commandParser - summary: Attempts to set the given template(s) to a command component, clearing old templates if they exist. - description: Attempts to set the given template(s) to a command component, clearing old templates if they exist. + - commandParser + summary: 'Attempts to set the given template(s) to a command component, clearing old templates if they exist.' + description: 'Attempts to set the given template(s) to a command component, clearing old templates if they exist.' operationId: SetAllTemplatesOfCommandComponentcommandComponenttemplates_Post requestBody: content: @@ -6800,14 +10471,14 @@ paths: schema: $ref: '#/components/schemas/CommandComponentTemplateResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /commandParser/commandComponentMany/templates: post: tags: - - commandParser - summary: Gets all templates of multiple command components + - commandParser + summary: Gets all templates of multiple command components. description: Gets all templates of multiple command components. operationId: GetAllCommandComponentsTemplatescommandComponentManytemplates_Post requestBody: @@ -6824,40 +10495,40 @@ paths: schema: $ref: '#/components/schemas/GetAllCommandComponentsTemplatesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /cloudTemplate/status: get: tags: - - cloudTemplate - summary: Provide a ProspectiveName for the Cloud System or a ReportSpecId to identify the associated cloud report but never both. Gets the state of progress in the creation of a new cloud report policy. For example it may be only partially configured and require the addition of credentials before it can be run + - cloudTemplate + summary: Provide a ProspectiveName for the Cloud System or a ReportSpecId to identify the associated cloud report but never both. Gets the state of progress in the creation of a new cloud report policy. For example it may be only partially configured and require the addition of credentials before it can be run. description: Provide a ProspectiveName for the Cloud System or a ReportSpecId to identify the associated cloud report but never both. Gets the state of progress in the creation of a new cloud report policy. For example it may be only partially configured and require the addition of credentials before it can be run. operationId: GetCloudTemplateCreationStatusstatus_Get parameters: - - name: ProspectiveName - in: query - description: Specifies the prospective name of a Cloud System so that a check can be made to determine if any of the components already exist - schema: - type: string - - name: ReportSpecId - in: query - description: Specifies the id of the ReportSpecification representing this scheduled cloud report - schema: - type: string - - name: IncludeIfHidden - in: query - description: Whether or not the report associated with the ReportSpecification id will get found if it's in a hidden state - schema: - type: boolean - x-nullable: false - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: ProspectiveName + in: query + description: Specifies the prospective name of a Cloud System so that a check can be made to determine if any of the components already exist + schema: + type: string + - name: ReportSpecId + in: query + description: Specifies the id of the ReportSpecification representing this scheduled cloud report + schema: + type: string + - name: IncludeIfHidden + in: query + description: Whether or not the report associated with the ReportSpecification id will get found if it's in a hidden state + schema: + type: boolean + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': description: Success @@ -6866,18 +10537,122 @@ paths: schema: $ref: '#/components/schemas/GetCloudTemplateCreationStatusResponse' security: - - Bearer: [] + - Bearer: [ ] post: tags: - - cloudTemplate - summary: Provide a ProspectiveName for the Cloud System or a ReportSpecId to identify the associated cloud report but never both. Gets the state of progress in the creation of a new cloud report policy. For example it may be only partially configured and require the addition of credentials before it can be run + - cloudTemplate + summary: Provide a ProspectiveName for the Cloud System or a ReportSpecId to identify the associated cloud report but never both. Gets the state of progress in the creation of a new cloud report policy. For example it may be only partially configured and require the addition of credentials before it can be run. description: Provide a ProspectiveName for the Cloud System or a ReportSpecId to identify the associated cloud report but never both. Gets the state of progress in the creation of a new cloud report policy. For example it may be only partially configured and require the addition of credentials before it can be run. operationId: GetCloudTemplateCreationStatusstatus_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/GetCloudTemplateCreationStatus' + $ref: '#/components/schemas/GetCloudTemplateCreationStatus' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetCloudTemplateCreationStatusResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /policyTemplate/setup: + get: + tags: + - policyTemplate + summary: Ensures that the specified baseline template has the required source and members groups and related scheduled compliance report configured. + description: Ensures that the specified baseline template has the required source and members groups and related scheduled compliance report configured. + operationId: SetupPolicyTemplatesetup_Get + parameters: + - name: PolicyTemplateName + in: query + description: Specifies the policy template name + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/SetupPolicyTemplateResponse' + security: + - Bearer: [ ] + post: + tags: + - policyTemplate + summary: Ensures that the specified baseline template has the required source and members groups and related scheduled compliance report configured. + description: Ensures that the specified baseline template has the required source and members groups and related scheduled compliance report configured. + operationId: SetupPolicyTemplatesetup_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SetupPolicyTemplate' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/SetupPolicyTemplateResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /policyTemplate/status: + get: + tags: + - policyTemplate + summary: Gets the state of progress in the creation of a new policy. For example it may be only partially configured and require the addition of rules before it can be applied to devices. + description: Gets the state of progress in the creation of a new policy. For example it may be only partially configured and require the addition of rules before it can be applied to devices. + operationId: GetPolicyTemplateCreationStatusstatus_Get + parameters: + - name: PolicyTemplateName + in: query + description: Specifies the policy template name to query + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetPolicyTemplateCreationStatusResponse' + security: + - Bearer: [ ] + post: + tags: + - policyTemplate + summary: Gets the state of progress in the creation of a new policy. For example it may be only partially configured and require the addition of rules before it can be applied to devices. + description: Gets the state of progress in the creation of a new policy. For example it may be only partially configured and require the addition of rules before it can be applied to devices. + operationId: GetPolicyTemplateCreationStatusstatus_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetPolicyTemplateCreationStatus' x-bodyName: body responses: '200': @@ -6885,106 +10660,193 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GetCloudTemplateCreationStatusResponse' + $ref: '#/components/schemas/GetPolicyTemplateCreationStatusResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /policyTemplate/setup: + - $ref: '#/components/parameters/Accept' + /policyTemplate/add: get: tags: - - policyTemplate - summary: Ensures that the specified baseline template has the required source and members groups and related scheduled compliance report configured - description: Ensures that the specified baseline template has the required source and members groups and related scheduled compliance report configured. - operationId: SetupPolicyTemplatesetup_Get + - policyTemplate + summary: Adds a device config template. + description: Adds a device config template. + operationId: AddPolicyTemplateadd_Get parameters: - - name: PolicyTemplateName - in: query - description: Specifies the policy template name - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Template + in: query + description: Specifies the template. + schema: + $ref: '#/components/schemas/PolicyTemplateRuleSet' + - name: UsageTags + in: query + description: 'Specifies the policy usages type to store on the Template e.g. Baseline, Tracking etc...' + style: form + schema: + type: array + items: + type: string + - name: ChangeComment + in: query + description: Specifies a short description of the change for auditing purposes. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Success + description: Response to a request for matching config templates. content: application/json: schema: - $ref: '#/components/schemas/SetupPolicyTemplateResponse' + $ref: '#/components/schemas/GetPolicyTemplatesResponse' security: - - Bearer: [] + - Bearer: [ ] post: tags: - - policyTemplate - summary: Ensures that the specified baseline template has the required source and members groups and related scheduled compliance report configured - description: Ensures that the specified baseline template has the required source and members groups and related scheduled compliance report configured. - operationId: SetupPolicyTemplatesetup_Post + - policyTemplate + summary: Adds a device config template. + description: Adds a device config template. + operationId: AddPolicyTemplateadd_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/SetupPolicyTemplate' + $ref: '#/components/schemas/AddPolicyTemplate' x-bodyName: body responses: '200': - description: Success + description: Response to a request for matching config templates. content: application/json: schema: - $ref: '#/components/schemas/SetupPolicyTemplateResponse' + $ref: '#/components/schemas/GetPolicyTemplatesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /policyTemplate/status: + - $ref: '#/components/parameters/Accept' + /policyRecent: get: tags: - - policyTemplate - summary: Gets the state of progress in the creation of a new policy. For example it may be only partially configured and require the addition of rules before it can be applied to devices - description: Gets the state of progress in the creation of a new policy. For example it may be only partially configured and require the addition of rules before it can be applied to devices. - operationId: GetPolicyTemplateCreationStatusstatus_Get + - policyRecent + summary: Gets the most recent policy run results for each matching policy in the time range. + description: Gets the most recent policy run results for each matching policy in the time range. + operationId: GetMostRecentPolicyResults_Get parameters: - - name: PolicyTemplateName - in: query - description: Specifies the policy template name to query - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: UsageTag + in: query + description: Restricts the results returned to compliance policies marked with the specified UsageTagsApplicable. + schema: + enum: + - All + - Database + - Linux + - Network + - OSX + - Unix + - Windows + - Baseline + - Compliance + - Tracking + - Hardening + - Cloud + type: string + x-nullable: false + - name: GroupName + in: query + description: Specifies the group name. + schema: + type: string + - name: ExcludePoliciesWithNoDevices + in: query + description: Restricts the results returned to policies run on groups containing at least one device. + schema: + type: boolean + x-nullable: false + - name: ExcludePoliciesNotSetup + in: query + description: Baselines only - excludes policies not yet fully setup from the results. + schema: + type: boolean + x-nullable: false + - name: ExcludePoliciesWithNoResults + in: query + description: Baselines only - excludes policies with no results in the time period from the results. + schema: + type: boolean + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Success + description: Response to a request for matching config templates. content: application/json: schema: - $ref: '#/components/schemas/GetPolicyTemplateCreationStatusResponse' + $ref: '#/components/schemas/GetMostRecentPolicyResultsResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /policyTemplate/add: + - Bearer: [ ] post: tags: - - policyTemplate - summary: Adds a device config template - description: Adds a device config template. - operationId: AddPolicyTemplateadd_Post + - policyRecent + summary: Gets the most recent policy run results for each matching policy in the time range. + description: Gets the most recent policy run results for each matching policy in the time range. + operationId: GetMostRecentPolicyResults_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/AddPolicyTemplate' + $ref: '#/components/schemas/GetMostRecentPolicyResults' x-bodyName: body responses: '200': @@ -6992,123 +10854,74 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GetPolicyTemplatesResponse' + $ref: '#/components/schemas/GetMostRecentPolicyResultsResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /policyRecent: + - $ref: '#/components/parameters/Accept' + /policyTemplate/add/rules: get: tags: - - policyRecent - summary: Gets the most recent policy run results for each matching policy in the time range - description: Gets the most recent policy run results for each matching policy in the time range. - operationId: GetMostRecentPolicyResults_Get + - policyTemplate + summary: Add a rules to a baseline policy based on events + description: Add a rules to a baseline policy based on events + operationId: AddPolicyTemplateRulesaddrules_Get parameters: - - name: UsageTag - in: query - description: Restricts the results returned to compliance policies marked with the specified UsageTagsApplicable. - schema: - enum: - - All - - Database - - Linux - - Network - - OSX - - Unix - - Windows - - Baseline - - Compliance - - Tracking - - Hardening - - Cloud - type: string - x-nullable: false - - name: GroupName - in: query - description: Specifies the group name. - schema: - type: string - - name: ExcludePoliciesWithNoDevices - in: query - description: Restricts the results returned to policies run on groups containing at least one device. - schema: - type: boolean - x-nullable: false - - name: ExcludePoliciesNotSetup - in: query - description: Baselines only - excludes policies not yet fully setup from the results. - schema: - type: boolean - x-nullable: false - - name: ExcludePoliciesWithNoResults - in: query - description: Baselines only - excludes policies with no results in the time period from the results. - schema: - type: boolean - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: Name + in: query + description: Specifies the policy template name to add rules to + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: AddDeviceInformationRule + in: query + description: Specifies whether to add the device information section at the start of the report + schema: + type: boolean + x-nullable: false + - name: ChangeComment + in: query + description: Specifies a short description of the change for auditing purposes. + schema: + type: string + - name: PreviewChanges + in: query + description: Specifies if the rule changes should only be previewed and not saved to the template. + schema: + type: boolean + x-nullable: false + - name: StartUtc + in: query + description: 'Gets or sets the start of the period to return events for, null implies all.' + schema: + type: string + format: date-time + - name: RuleOptions + in: query + description: Specifies any Rule Builder Options. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/RuleBuilderOptions' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Response to a request for matching config templates. + description: Success content: application/json: schema: - $ref: '#/components/schemas/GetMostRecentPolicyResultsResponse' + $ref: '#/components/schemas/AddPolicyTemplateRulesResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /policyTemplate/add/rules: + - Bearer: [ ] post: tags: - - policyTemplate + - policyTemplate summary: Add a rules to a baseline policy based on events description: Add a rules to a baseline policy based on events operationId: AddPolicyTemplateRulesaddrules_Post @@ -7126,14 +10939,102 @@ paths: schema: $ref: '#/components/schemas/AddPolicyTemplateRulesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /devicePolicyTemplate/add: + get: + tags: + - devicePolicyTemplate + summary: Adds a device policy template to the system. The specified template should be supplied as Xml. + description: Adds a device policy template to the system. The specified template should be supplied as Xml. + operationId: AddPolicyTemplateXmladd_Get + parameters: + - name: Name + in: query + description: Specifies the name. + schema: + type: string + - name: Xml + in: query + description: Specifies the xml. + schema: + type: string + - name: PassMark + in: query + description: Specifies the pass mark. Only relevant for 'TemplateType' of 'PolicyTemplateType.ComplianceReport'. + schema: + type: number + format: double + x-nullable: false + - name: AsCopyOf + in: query + description: Specifies as a copy of an existing template named this + schema: + type: string + - name: CopyTemplateValues + in: query + description: 'Specifies a copy of an existing template should only copy the tracking information, not the values' + schema: + type: boolean + x-nullable: false + - name: AsCopyOfVersion + in: query + description: Specifies version to copy when using AsCopyOf + schema: + type: string + - name: AdditionalUsageTags + in: query + description: 'Specifies extra UsageTagsApplicable to record against the template, in addition to those specified in the Xml' + style: form + schema: + type: array + items: + type: string + x-nullable: false + - name: OverwriteIfExists + in: query + description: Specifies a flag to indicate whether or not not overwrite the report / config if it already exists + schema: + type: boolean + x-nullable: false + - name: ExternalDataFileId + in: query + description: Specifies an external file id if the XML is not provided 'in line' + schema: + type: string + - name: IsSystem + in: query + description: Specifies a flag to indicate whether or not the template is part of the standard system set or a customized version + schema: + type: boolean + x-nullable: false + - name: IsUiUpload + in: query + description: Specifies a flag to indicate whether or not the template is has been uploaded from the UI + schema: + type: boolean + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Response to adding a device policy template to the system. + content: + application/json: + schema: + $ref: '#/components/schemas/AddPolicyTemplateResponse' + security: + - Bearer: [ ] post: tags: - - devicePolicyTemplate - summary: Adds a device policy template to the system. The specified template should be supplied as Xml + - devicePolicyTemplate + summary: Adds a device policy template to the system. The specified template should be supplied as Xml. description: Adds a device policy template to the system. The specified template should be supplied as Xml. operationId: AddPolicyTemplateXmladd_Post requestBody: @@ -7150,14 +11051,45 @@ paths: schema: $ref: '#/components/schemas/AddPolicyTemplateResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /devicePolicyTemplate/delete: + get: + tags: + - devicePolicyTemplate + summary: Deletes a device policy template from the system. The specified template can be either config or a compliance report template. + description: Deletes a device policy template from the system. The specified template can be either config or a compliance report template. + operationId: DeletePolicyTemplatedelete_Get + parameters: + - name: Name + in: query + description: Specifies the policy template name to delete + schema: + type: string + - name: TemplateVersion + in: query + description: 'Specifies the policy template version to delete. Optional, if not supplied all versions of the template are removed.' + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - devicePolicyTemplate - summary: Deletes a device policy template from the system. The specified template can be either config or a compliance report template + - devicePolicyTemplate + summary: Deletes a device policy template from the system. The specified template can be either config or a compliance report template. description: Deletes a device policy template from the system. The specified template can be either config or a compliance report template. operationId: DeletePolicyTemplatedelete_Post requestBody: @@ -7170,15 +11102,15 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /uploadPolicyTemplate: post: tags: - - uploadPolicyTemplate + - uploadPolicyTemplate summary: Upload a policy template file description: Upload a policy template file operationId: UploadPolicyTemplate_Post @@ -7196,34 +11128,55 @@ paths: schema: $ref: '#/components/schemas/UploadPolicyTemplateResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /policyTemplateAsFile: get: tags: - - policyTemplateAsFile - summary: Returns a policy template as an xml file in the Http Response stream + - policyTemplateAsFile + summary: Returns a policy template as an xml file in the Http Response stream. description: Returns a policy template as an xml file in the Http Response stream. operationId: GetPolicyTemplateAsFile_Get parameters: - - name: Name - in: query - description: Specifies the templatem name to retrieve. - schema: - type: string - - name: AgentDeviceId - in: query - description: Specifies the agent device id to get the current combined template for. Note either this or the 'Name' should be specified. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Name + in: query + description: Specifies the templatem name to retrieve. + schema: + type: string + - name: AgentDeviceId + in: query + description: Specifies the agent device id to get the current combined template for. Note either this or the 'Name' should be specified. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/Object' + security: + - Bearer: [ ] + post: + tags: + - policyTemplateAsFile + summary: Returns a policy template as an xml file in the Http Response stream. + description: Returns a policy template as an xml file in the Http Response stream. + operationId: GetPolicyTemplateAsFile_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetPolicyTemplateAsFile' + x-bodyName: body responses: '200': description: Success @@ -7232,29 +11185,50 @@ paths: schema: $ref: '#/components/schemas/Object' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /agentProcesses: get: tags: - - agentProcesses - summary: Get the list of running processes from a specified agent / device.Used to enable 'white-listing' if existing processes from a running agent when building device config + - agentProcesses + summary: Get the list of running processes from a specified agent / device.Used to enable 'white-listing' if existing processes from a running agent when building device config. description: Get the list of running processes from a specified agent / device.Used to enable 'white-listing' if existing processes from a running agent when building device config. operationId: GetAgentProcesses_Get parameters: - - name: AgentDevice - in: query - description: Specifies the agent/device to get the processes from - schema: - $ref: '#/components/schemas/AgentDevice' - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: AgentDevice + in: query + description: Specifies the agent/device to get the processes from + schema: + $ref: '#/components/schemas/AgentDevice' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Describes the list of running processes on a device. + content: + application/json: + schema: + $ref: '#/components/schemas/GetAgentProcessesResponse' + security: + - Bearer: [ ] + post: + tags: + - agentProcesses + summary: Get the list of running processes from a specified agent / device.Used to enable 'white-listing' if existing processes from a running agent when building device config. + description: Get the list of running processes from a specified agent / device.Used to enable 'white-listing' if existing processes from a running agent when building device config. + operationId: GetAgentProcesses_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetAgentProcesses' + x-bodyName: body responses: '200': description: Describes the list of running processes on a device. @@ -7263,14 +11237,52 @@ paths: schema: $ref: '#/components/schemas/GetAgentProcessesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /startAgentTracker: + get: + tags: + - startAgentTracker + summary: Ask an agent to start a specified tracker. + description: Ask an agent to start a specified tracker. + operationId: StartAgentTracker_Get + parameters: + - name: AgentDevice + in: query + description: Specifies the agent the tracker will be started on. Alternative to AgentDeviceId. + schema: + $ref: '#/components/schemas/AgentDevice' + - name: AgentDeviceId + in: query + description: Specifies the agent id the tracker will be started on. Alternative to AgentDevice. + schema: + type: string + - name: TrackerName + in: query + description: Specifies the tracker to be started + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/StartAgentTrackerResponse' + security: + - Bearer: [ ] post: tags: - - startAgentTracker - summary: Ask an agent to start a specified tracker + - startAgentTracker + summary: Ask an agent to start a specified tracker. description: Ask an agent to start a specified tracker. operationId: StartAgentTracker_Post requestBody: @@ -7287,29 +11299,50 @@ paths: schema: $ref: '#/components/schemas/StartAgentTrackerResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /agentServices: get: tags: - - agentServices - summary: Get the list of running Services from a specified agent/device. Used to enable 'white - listing' if existing Service from a running agent when building device config + - agentServices + summary: Get the list of running Services from a specified agent/device. Used to enable 'white - listing' if existing Service from a running agent when building device config. description: Get the list of running Services from a specified agent/device. Used to enable 'white - listing' if existing Service from a running agent when building device config. operationId: GetAgentServices_Get parameters: - - name: AgentDevice - in: query - description: Specifies the agent/device to get the Services from - schema: - $ref: '#/components/schemas/AgentDevice' - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: AgentDevice + in: query + description: Specifies the agent/device to get the Services from + schema: + $ref: '#/components/schemas/AgentDevice' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Describes the list of running services on a device. + content: + application/json: + schema: + $ref: '#/components/schemas/GetAgentServicesResponse' + security: + - Bearer: [ ] + post: + tags: + - agentServices + summary: Get the list of running Services from a specified agent/device. Used to enable 'white - listing' if existing Service from a running agent when building device config. + description: Get the list of running Services from a specified agent/device. Used to enable 'white - listing' if existing Service from a running agent when building device config. + operationId: GetAgentServices_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetAgentServices' + x-bodyName: body responses: '200': description: Describes the list of running services on a device. @@ -7318,14 +11351,45 @@ paths: schema: $ref: '#/components/schemas/GetAgentServicesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /policyTemplates/activeVersion: + get: + tags: + - policyTemplates + summary: Sets a specific version of a named policy template as the active one. + description: Sets a specific version of a named policy template as the active one. + operationId: SetActivePolicyTemplateactiveVersion_Get + parameters: + - name: TemplateName + in: query + description: Specifies the template name. + schema: + type: string + - name: ActiveVersion + in: query + description: Specifies the version of the template to make active. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - policyTemplates - summary: Sets a specific version of a named policy template as the active one + - policyTemplates + summary: Sets a specific version of a named policy template as the active one. description: Sets a specific version of a named policy template as the active one. operationId: SetActivePolicyTemplateactiveVersion_Post requestBody: @@ -7338,16 +11402,140 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /policyTemplates/update: + get: + tags: + - policyTemplates + summary: Update matching config templates. + description: Update matching config templates. + operationId: UpdatePolicyTemplatesupdate_Get + parameters: + - name: Name + in: query + description: Specifies the name (id) to search for. + schema: + type: string + - name: NameContains + in: query + description: Specifies the text the name contains. Used to search for partial match if 'Name' not specified. + schema: + type: string + - name: ReturnXml + in: query + description: Specifies a value indicating whether to return the template xml in the response. Defaults to false. + schema: + type: boolean + x-nullable: false + - name: ReturnSignatures + in: query + description: Specifies a value indicating whether to calculate and return the template signatures in the response. Defaults to false. + schema: + type: boolean + x-nullable: false + - name: IsActive + in: query + description: Get the Active version of a template + schema: + type: boolean + - name: IsLatest + in: query + description: Get the Latest version of a template + schema: + type: boolean + - name: HasRules + in: query + description: Get templates with Rules + schema: + type: boolean + - name: HasTrackers + in: query + description: Get templates with Trackers + schema: + type: boolean + - name: TemplateTrackerTypes + in: query + description: Specifies the template's tracker types. + style: form + schema: + type: array + items: + type: string + - name: TemplateVersion + in: query + description: Specifies the template version to get. + schema: + type: string + - name: UsageTags + in: query + description: Specifies the policy usage types to get. + style: form + schema: + type: array + items: + type: string + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - policyTemplates - summary: Update matching config templates + - policyTemplates + summary: Update matching config templates. description: Update matching config templates. operationId: UpdatePolicyTemplatesupdate_Post requestBody: @@ -7360,37 +11548,58 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /deviceConfigTemplate: get: tags: - - deviceConfigTemplate - summary: Gets a named device config template + - deviceConfigTemplate + summary: Gets a named device config template. description: Gets a named device config template. operationId: GetDeviceConfigTemplate_Get parameters: - - name: Name - in: query - description: Specifies the template name. - schema: - type: string - - name: IncludeSystemFilters - in: query - description: Specifies a value indicating whether to include system defined filters and path match definitions. - schema: - type: boolean - x-nullable: false - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Name + in: query + description: Specifies the template name. + schema: + type: string + - name: IncludeSystemFilters + in: query + description: Specifies a value indicating whether to include system defined filters and path match definitions. + schema: + type: boolean + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Represents a named policy tracking configuration and rule-set template. + content: + application/json: + schema: + $ref: '#/components/schemas/PolicyTemplateRuleSet' + security: + - Bearer: [ ] + post: + tags: + - deviceConfigTemplate + summary: Gets a named device config template. + description: Gets a named device config template. + operationId: GetDeviceConfigTemplate_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetDeviceConfigTemplate' + x-bodyName: body responses: '200': description: Represents a named policy tracking configuration and rule-set template. @@ -7399,40 +11608,64 @@ paths: schema: $ref: '#/components/schemas/PolicyTemplateRuleSet' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /deviceConfigTemplateNames: get: tags: - - deviceConfigTemplateNames - summary: Gets a list of device tracking template names, optionally filtering by trackers contained (e.g. find templates with a process tracker). - description: Gets a list of device tracking template names, optionally filtering by trackers contained (e.g. find templates with a process tracker). + - deviceConfigTemplateNames + summary: 'Gets a list of device tracking template names, optionally filtering by trackers contained (e.g. find templates with a process tracker).' + description: 'Gets a list of device tracking template names, optionally filtering by trackers contained (e.g. find templates with a process tracker).' operationId: GetDeviceConfigTemplateNames_Get parameters: - - name: TrackersContained - in: query - description: Specifies the trackers contained. Optional. If specified this filters the returned list of template names to include only those containing the named trackers (eg 'processtracker'). - style: form - schema: - type: array - items: - type: string - - name: AgentDeviceIds - in: query - description: Specifies the agent devices. Optional. If specified this filters the returned list of template names to include only those currently applied to ALL the listed devices due to their group memberships, i.e. an intersection of group membership sets. - style: form - schema: - type: array - items: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: TrackersContained + in: query + description: Specifies the trackers contained. Optional. If specified this filters the returned list of template names to include only those containing the named trackers (eg 'processtracker'). + style: form + schema: + type: array + items: + type: string + - name: AgentDeviceIds + in: query + description: 'Specifies the agent devices. Optional. If specified this filters the returned list of template names to include only those currently applied to ALL the listed devices due to their group memberships, i.e. an intersection of group membership sets.' + style: form + schema: + type: array + items: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: List + type: array + items: + type: string + security: + - Bearer: [ ] + post: + tags: + - deviceConfigTemplateNames + summary: 'Gets a list of device tracking template names, optionally filtering by trackers contained (e.g. find templates with a process tracker).' + description: 'Gets a list of device tracking template names, optionally filtering by trackers contained (e.g. find templates with a process tracker).' + operationId: GetDeviceConfigTemplateNames_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetDeviceConfigTemplateNames' + x-bodyName: body responses: '200': description: Success @@ -7444,14 +11677,48 @@ paths: items: type: string security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /addDeviceConfigProcessRules: + get: + tags: + - addDeviceConfigProcessRules + summary: Adds white/grey/black listing to process rules in the specified device tracking configuration template. + description: Adds white/grey/black listing to process rules in the specified device tracking configuration template. + operationId: AddDeviceConfigProcessRules_Get + parameters: + - name: DeviceTemplateName + in: query + description: The name of the device tracking configuration template + schema: + type: string + - name: Rules + in: query + description: A list of all the Rules + style: form + schema: + type: array + items: + $ref: '#/components/schemas/Process' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - addDeviceConfigProcessRules - summary: Adds white/grey/black listing to process rules in the specified device tracking configuration template + - addDeviceConfigProcessRules + summary: Adds white/grey/black listing to process rules in the specified device tracking configuration template. description: Adds white/grey/black listing to process rules in the specified device tracking configuration template. operationId: AddDeviceConfigProcessRules_Post requestBody: @@ -7464,84 +11731,105 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /groupPolicy: get: tags: - - groupPolicy - summary: Get the configured config policy template for the specified group or by individual template name + - groupPolicy + summary: Get the configured config policy template for the specified group or by individual template name. description: Get the configured config policy template for the specified group or by individual template name. operationId: GetGroupPolicy_Get parameters: - - name: GroupName - in: query - description: Specifies the group name. Optional. - schema: - type: string - - name: GroupNames - in: query - description: Specifies the group names. Optional. - style: form - schema: - type: array - items: + - name: GroupName + in: query + description: Specifies the group name. Optional. + schema: type: string - - name: PolicyTemplateName - in: query - description: Specifies the policy template name. Optional. - schema: - type: string - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: GroupNames + in: query + description: Specifies the group names. Optional. + style: form + schema: + type: array + items: + type: string + - name: PolicyTemplateName + in: query + description: Specifies the policy template name. Optional. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response to the request for configured policy templates on the group. + content: + application/json: + schema: + $ref: '#/components/schemas/GetGroupPolicyResponse' + security: + - Bearer: [ ] + post: + tags: + - groupPolicy + summary: Get the configured config policy template for the specified group or by individual template name. + description: Get the configured config policy template for the specified group or by individual template name. + operationId: GetGroupPolicy_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetGroupPolicy' + x-bodyName: body responses: '200': description: The response to the request for configured policy templates on the group. @@ -7550,54 +11838,129 @@ paths: schema: $ref: '#/components/schemas/GetGroupPolicyResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /groupPolicyNames: get: tags: - - groupPolicyNames - summary: Get the configured config policy template names for the specified groups + - groupPolicyNames + summary: Get the configured config policy template names for the specified groups. description: Get the configured config policy template names for the specified groups. operationId: GetGroupPolicyConfigNames_Get parameters: - - name: GroupNames - in: query - description: Specifies the list of group names to get the config for - style: form - schema: - type: array - items: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: GroupNames + in: query + description: Specifies the list of group names to get the config for + style: form + schema: + type: array + items: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: 'Dictionary>' + content: + application/json: + schema: + title: 'Dictionary>' + type: object + additionalProperties: + type: array + items: + type: string + description: 'Dictionary>' + security: + - Bearer: [ ] + post: + tags: + - groupPolicyNames + summary: Get the configured config policy template names for the specified groups. + description: Get the configured config policy template names for the specified groups. + operationId: GetGroupPolicyConfigNames_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetGroupPolicyConfigNames' + x-bodyName: body responses: '200': - description: Dictionary> + description: 'Dictionary>' content: application/json: schema: - title: Dictionary> + title: 'Dictionary>' type: object additionalProperties: type: array items: type: string - description: Dictionary> + description: 'Dictionary>' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /groupPolicy/add: + get: + tags: + - groupPolicy + summary: Adds a config template to a group. + description: Adds a config template to a group. + operationId: AddGroupPolicyadd_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + - name: GroupName + in: query + description: Specifies the group name. + schema: + type: string + - name: GroupDisplayName + in: query + description: Specifies the group display name. + schema: + type: string + - name: PolicyTemplateName + in: query + description: Specifies the policy template name. + schema: + type: string + - name: PolicyTemplateDisplayName + in: query + description: Specifies the policy template display name. + schema: + type: string + - name: IsTrusted + in: query + description: Specifies if policy template contains trusted commands. + schema: + type: boolean + responses: + '200': + description: The response to the request to add a configured policy template to the group. + content: + application/json: + schema: + $ref: '#/components/schemas/AddGroupPolicyResponse' + security: + - Bearer: [ ] post: tags: - - groupPolicy - summary: Adds a config template to a group + - groupPolicy + summary: Adds a config template to a group. description: Adds a config template to a group. operationId: AddGroupPolicyadd_Post requestBody: @@ -7607,21 +11970,52 @@ paths: $ref: '#/components/schemas/AddGroupPolicy' x-bodyName: body responses: - '200': - description: The response to the request to add a configured policy template to the group. + '200': + description: The response to the request to add a configured policy template to the group. + content: + application/json: + schema: + $ref: '#/components/schemas/AddGroupPolicyResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /groupPolicy/delete: + get: + tags: + - groupPolicy + summary: Removes a config template from a group. + description: Removes a config template from a group. + operationId: DeleteGroupPolicydelete_Get + parameters: + - name: GroupName + in: query + description: Specifies the group name to delete the policy from. + schema: + type: string + - name: PolicyTemplateName + in: query + description: Specifies the policy template name to remove from the group. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content content: - application/json: - schema: - $ref: '#/components/schemas/AddGroupPolicyResponse' + application/json: { } security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /groupPolicy/delete: + - Bearer: [ ] post: tags: - - groupPolicy - summary: Removes a config template from a group + - groupPolicy + summary: Removes a config template from a group. description: Removes a config template from a group. operationId: DeleteGroupPolicydelete_Post requestBody: @@ -7634,16 +12028,62 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /reParentDevices: + get: + tags: + - reParentDevices + summary: Re-parents the given devices to the specified Agent. + description: Re-parents the given devices to the specified Agent. + operationId: ReParentDevices_Get + parameters: + - name: Devices + in: query + description: A list of agent device IDs to be re-parented. + style: form + schema: + type: array + items: + type: string + - name: AgentDeviceId + in: query + description: The agent device id to re-parent the devices to. + schema: + type: string + - name: MigrateEvents + in: query + description: A boolean that controls wether to migrate any 'old' events to the new agent device id combination. + schema: + type: boolean + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: 'Dictionary' + content: + application/json: + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + security: + - Bearer: [ ] post: tags: - - reParentDevices - summary: Re-parents the given devices to the specified Agent + - reParentDevices + summary: Re-parents the given devices to the specified Agent. description: Re-parents the given devices to the specified Agent. operationId: ReParentDevices_Post requestBody: @@ -7654,24 +12094,76 @@ paths: x-bodyName: body responses: '200': - description: Dictionary + description: 'Dictionary' content: application/json: schema: - title: Dictionary + title: 'Dictionary' type: object additionalProperties: type: string - description: Dictionary + description: 'Dictionary' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /exportAgents: + get: + tags: + - exportAgents + summary: Export a list of agent details. + description: Export a list of agent details. + operationId: ExportAgents_Get + parameters: + - name: DeviceFilter + in: query + description: Specifies the device filter used to control the list of agents + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: ExportFormat + in: query + description: Specifies the export format + schema: + enum: + - Default + - Excel + - PDF + - HTML + - CSV + - JSON + - CSVXlsx + type: string + x-nullable: false + - name: ReportTitle + in: query + description: Specifies the title for the report + schema: + type: string + - name: TimeZoneId + in: query + description: Specifies the timezone id to do the export in + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/Object' + security: + - Bearer: [ ] post: tags: - - exportAgents - summary: Export a list of agent details + - exportAgents + summary: Export a list of agent details. description: Export a list of agent details. operationId: ExportAgents_Post requestBody: @@ -7688,99 +12180,120 @@ paths: schema: $ref: '#/components/schemas/Object' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /agentsRanked: get: tags: - - agentsRanked - summary: A request to return agents matching the device filter + - agentsRanked + summary: A request to return agents matching the device filter. description: A request to return agents matching the device filter. operationId: GetAgentsRanked_Get parameters: - - name: DeviceFilter - in: query - description: Specifies the agents to search for by id or group membership. - schema: - $ref: '#/components/schemas/DeviceFilter' - - name: GetAgentGroupDetails - in: query - description: Specifies a value indicating whether to get agent group details. - schema: - type: boolean - x-nullable: false - - name: GetRelatedCredentials - in: query - description: Specifies a value indicating whether to get related credentials. - schema: - type: boolean - x-nullable: false - - name: GetRelatedPlannedChanges - in: query - description: Specifies a value indicating whether to get related planned changes. - schema: - type: boolean - x-nullable: false - - name: GetRelatedTemplates - in: query - description: Specifies a value indicating whether to get templates applied to the returned agents. - schema: - type: boolean - x-nullable: false - - name: IncludeMasterInFilter - in: query - description: Specifies a value indicating whether to include proxy master devices in filters that match a child proxied device but would not otherwise return the proxying master. - schema: - type: boolean - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: DeviceFilter + in: query + description: Specifies the agents to search for by id or group membership. + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: GetAgentGroupDetails + in: query + description: Specifies a value indicating whether to get agent group details. + schema: + type: boolean + x-nullable: false + - name: GetRelatedCredentials + in: query + description: Specifies a value indicating whether to get related credentials. + schema: + type: boolean + x-nullable: false + - name: GetRelatedPlannedChanges + in: query + description: Specifies a value indicating whether to get related planned changes. + schema: + type: boolean + x-nullable: false + - name: GetRelatedTemplates + in: query + description: Specifies a value indicating whether to get templates applied to the returned agents. + schema: + type: boolean + x-nullable: false + - name: IncludeMasterInFilter + in: query + description: Specifies a value indicating whether to include proxy master devices in filters that match a child proxied device but would not otherwise return the proxying master. + schema: + type: boolean + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response objeect for GetAgentsRanked + content: + application/json: + schema: + $ref: '#/components/schemas/GetAgentsRankedResponse' + security: + - Bearer: [ ] + post: + tags: + - agentsRanked + summary: A request to return agents matching the device filter. + description: A request to return agents matching the device filter. + operationId: GetAgentsRanked_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetAgentsRanked' + x-bodyName: body responses: '200': description: The response objeect for GetAgentsRanked @@ -7789,79 +12302,100 @@ paths: schema: $ref: '#/components/schemas/GetAgentsRankedResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /groupMembers: get: tags: - - groupMembers - summary: A request to return group members matching the criteria + - groupMembers + summary: A request to return group members matching the criteria. description: A request to return group members matching the criteria. operationId: GroupMembers_Get parameters: - - name: GroupName - in: query - description: The name of the group to query. - schema: - type: string - - name: MemberType - in: query - description: Specifies the member type to return (AgentDevice or Group). - schema: - enum: - - None - - AgentDevice - - Group - type: string - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: GroupName + in: query + description: The name of the group to query. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: MemberType + in: query + description: Specifies the member type to return (AgentDevice or Group). + schema: + enum: + - None + - AgentDevice + - Group + type: string + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response to group members request. + content: + application/json: + schema: + $ref: '#/components/schemas/GroupMembersResponse' + security: + - Bearer: [ ] + post: + tags: + - groupMembers + summary: A request to return group members matching the criteria. + description: A request to return group members matching the criteria. + operationId: GroupMembers_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GroupMembers' + x-bodyName: body responses: '200': description: The response to group members request. @@ -7870,98 +12404,119 @@ paths: schema: $ref: '#/components/schemas/GroupMembersResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /groups: get: tags: - - groups - summary: A request to return groups matching the criteria + - groups + summary: A request to return groups matching the criteria. description: A request to return groups matching the criteria. operationId: GetGroups_Get parameters: - - name: Name - in: query - description: The internal name of the group to find. - schema: - type: string - - name: DisplayName - in: query - description: The display name of the group to find. - schema: - type: string - - name: DisplayNameContains - in: query - description: A fragment of the display name in the groups to find. - schema: - type: string - - name: UserName - in: query - description: The alternative user name to retrieve groups for. Note that the returned list will also be filtered by the visibility of groups the authenticated user has. - schema: - type: string - - name: MemberOf - in: query - description: The groups of which the returned groups must be a member. If null, members of any group can be returned, if an empty list only groups which are members of no groups (i.e. have no parent) are returned. - style: form - schema: - type: array - items: + - name: Name + in: query + description: The internal name of the group to find. + schema: type: string - - name: OnlyGroupsWithUpdate - in: query - description: Gets or sets the a flag indicating whether to only return groups with an agent update scheduled. - schema: - type: boolean - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: DisplayName + in: query + description: The display name of the group to find. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: DisplayNameContains + in: query + description: A fragment of the display name in the groups to find. + schema: + type: string + - name: UserName + in: query + description: The alternative user name to retrieve groups for. Note that the returned list will also be filtered by the visibility of groups the authenticated user has. + schema: + type: string + - name: MemberOf + in: query + description: 'The groups of which the returned groups must be a member. If null, members of any group can be returned, if an empty list only groups which are members of no groups (i.e. have no parent) are returned.' + style: form + schema: + type: array + items: + type: string + - name: OnlyGroupsWithUpdate + in: query + description: Gets or sets the a flag indicating whether to only return groups with an agent update scheduled. + schema: + type: boolean + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response to a get groups request. + content: + application/json: + schema: + $ref: '#/components/schemas/GetGroupsResponse' + security: + - Bearer: [ ] + post: + tags: + - groups + summary: A request to return groups matching the criteria. + description: A request to return groups matching the criteria. + operationId: GetGroups_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetGroups' + x-bodyName: body responses: '200': description: The response to a get groups request. @@ -7970,14 +12525,14 @@ paths: schema: $ref: '#/components/schemas/GetGroupsResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /groupsTree: get: tags: - - groupsTree - summary: Gets a tree structure representing the groups hierarchy + - groupsTree + summary: Gets a tree structure representing the groups hierarchy. description: Gets a tree structure representing the groups hierarchy. operationId: GetGroupsTree_Get responses: @@ -7988,14 +12543,61 @@ paths: schema: $ref: '#/components/schemas/GetGroupsTreeResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /groups/delete: + - Bearer: [ ] + post: + tags: + - groupsTree + summary: Gets a tree structure representing the groups hierarchy. + description: Gets a tree structure representing the groups hierarchy. + operationId: GetGroupsTree_Post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GetGroupsTree' + x-bodyName: body + responses: + '200': + description: A returned tree structure representing the groups hierarchy. + content: + application/json: + schema: + $ref: '#/components/schemas/GetGroupsTreeResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /groups/delete: + get: + tags: + - groups + summary: Represents a request to delete a group matching the criteria. + description: Represents a request to delete a group matching the criteria. + operationId: DeleteGroupdelete_Get + parameters: + - name: Name + in: query + description: Gets or sets the Group Matching Name. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - groups - summary: Represents a request to delete a group matching the criteria + - groups + summary: Represents a request to delete a group matching the criteria. description: Represents a request to delete a group matching the criteria. operationId: DeleteGroupdelete_Post requestBody: @@ -8008,16 +12610,88 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /groups/add: + get: + tags: + - groups + summary: Adds a new Group definition. + description: Adds a new Group definition. + operationId: AddGroupadd_Get + parameters: + - name: ParentGroupName + in: query + description: Optionally specifies a parent group for the new group. If this is not supplied the group is automatically added as a child of the root 'All Devices' group unless NoParent is set + schema: + type: string + - name: DisplayName + in: query + description: Specifies the display name of the new group + schema: + type: string + - name: GroupType + in: query + description: Specifies the type of members allowed in the new group. Can be a combination of the allowed values + required: true + schema: + enum: + - None + - UserContainer + - DeviceContainer + - GroupContainer + type: int + x-nullable: false + - name: IsSystem + in: query + description: Specifies a flag indicating if this is a 'system' group or not + schema: + type: boolean + x-nullable: false + - name: Members + in: query + description: Specifies the list of ids of 'child group' members of the new group + style: form + schema: + type: array + items: + type: string + - name: RiskScore + in: query + description: Specifies the risk score of the group. + schema: + enum: + - Undefined + - Low + - MediumLow + - Medium + - MediumHigh + - High + type: string + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Represents a response to adding a new group + content: + application/json: + schema: + $ref: '#/components/schemas/AddGroupResponse' + security: + - Bearer: [ ] post: tags: - - groups - summary: Adds a new Group definition + - groups + summary: Adds a new Group definition. description: Adds a new Group definition. operationId: AddGroupadd_Post requestBody: @@ -8034,14 +12708,59 @@ paths: schema: $ref: '#/components/schemas/AddGroupResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /groups/update: + get: + tags: + - groups + summary: Updates a Group definition. + description: Updates a Group definition. + operationId: UpdateGroupupdate_Get + parameters: + - name: Name + in: query + description: Specifies the name of the group to update + required: true + schema: + type: string + - name: DisplayName + in: query + description: Specifies the new display name of the group + schema: + type: string + - name: Members + in: query + description: Specifies the list of 'child group' members + style: form + schema: + type: array + items: + type: string + - name: RiskScore + in: query + description: Specifies the risk score of the group + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - groups - summary: Updates a Group definition + - groups + summary: Updates a Group definition. description: Updates a Group definition. operationId: UpdateGroupupdate_Post requestBody: @@ -8054,16 +12773,45 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /devices/delete: + get: + tags: + - devices + summary: Represents a request to delete devices matching the criteria. Note that when a device is deleted it is moved to the Deleted group and is no longer included in the licensed device count. + description: Represents a request to delete devices matching the criteria. Note that when a device is deleted it is moved to the Deleted group and is no longer included in the licensed device count. + operationId: DeleteDevicesdelete_Get + parameters: + - name: AgentDeviceIds + in: query + description: 'The agent device ids to delete from their current groups, moving them to the Deleted group.' + style: form + schema: + type: array + items: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - devices - summary: Represents a request to delete devices matching the criteria. Note that when a device is deleted it is moved to the Deleted group and is no longer included in the licensed device count + - devices + summary: Represents a request to delete devices matching the criteria. Note that when a device is deleted it is moved to the Deleted group and is no longer included in the licensed device count. description: Represents a request to delete devices matching the criteria. Note that when a device is deleted it is moved to the Deleted group and is no longer included in the licensed device count. operationId: DeleteDevicesdelete_Post requestBody: @@ -8076,50 +12824,71 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /devices/overdue: get: tags: - - devices - summary: Gets devices that have not polled in for the specified amount of time + - devices + summary: Gets devices that have not polled in for the specified amount of time. description: Gets devices that have not polled in for the specified amount of time. operationId: GetOverdueDevicesoverdue_Get parameters: - - name: OfflineSeconds - in: query - description: Specifies the number of seconds the offline device must have been offline for. - required: true - schema: - type: integer - format: int32 - x-nullable: false - - name: MemberOfGroups - in: query - description: Specifies optional list of groups the devices must be a member of. - style: form - schema: - type: array - items: - type: string - - name: NotMemberOfGroups - in: query - description: Specifies optional list of groups the devices must not be a member of. - style: form - schema: - type: array - items: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: OfflineSeconds + in: query + description: Specifies the number of seconds the offline device must have been offline for. + required: true + schema: + type: integer + format: int32 + x-nullable: false + - name: MemberOfGroups + in: query + description: Specifies optional list of groups the devices must be a member of. + style: form + schema: + type: array + items: + type: string + - name: NotMemberOfGroups + in: query + description: Specifies optional list of groups the devices must not be a member of. + style: form + schema: + type: array + items: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Lists devices that have not polled in for the specified amount of time. + content: + application/json: + schema: + $ref: '#/components/schemas/GetOverdueDevicesResponse' + security: + - Bearer: [ ] + post: + tags: + - devices + summary: Gets devices that have not polled in for the specified amount of time. + description: Gets devices that have not polled in for the specified amount of time. + operationId: GetOverdueDevicesoverdue_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetOverdueDevices' + x-bodyName: body responses: '200': description: Lists devices that have not polled in for the specified amount of time. @@ -8128,15 +12897,58 @@ paths: schema: $ref: '#/components/schemas/GetOverdueDevicesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /device/deletePermanently: + get: + tags: + - device + summary: 'Delete the specified Agent from the system. On first call the system will issue a challenge which must be answered and the response supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code.' + description: 'Delete the specified Agent from the system. On first call the system will issue a challenge which must be answered and the response supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code.' + operationId: DeleteDevicePermanentlydeletePermanently_Get + parameters: + - name: AgentId + in: query + description: Specifies the id of the agent. + schema: + type: string + - name: DeviceId + in: query + description: Specifies the id of the device. + schema: + type: string + - name: GroupName + in: query + description: Specifies the group name. + schema: + type: string + - name: Response + in: query + description: The response to a previously issued challenge for this request. Without this the call will return a challenge for which the response must be supplied on a subsequently call. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: 'The response to a request to delete a specified Agent from the system. On first call the system will issue a challenge which must be responded to and supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code.' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteDevicePermanentlyResponse' + security: + - Bearer: [ ] post: tags: - - device - summary: Delete the specified Agent from the system. On first call the system will issue a challenge which must be answered and the response supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code. - description: Delete the specified Agent from the system. On first call the system will issue a challenge which must be answered and the response supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code. + - device + summary: 'Delete the specified Agent from the system. On first call the system will issue a challenge which must be answered and the response supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code.' + description: 'Delete the specified Agent from the system. On first call the system will issue a challenge which must be answered and the response supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code.' operationId: DeleteDevicePermanentlydeletePermanently_Post requestBody: content: @@ -8146,20 +12958,49 @@ paths: x-bodyName: body responses: '200': - description: The response to a request to delete a specified Agent from the system. On first call the system will issue a challenge which must be responded to and supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code. + description: 'The response to a request to delete a specified Agent from the system. On first call the system will issue a challenge which must be responded to and supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code.' content: application/json: schema: $ref: '#/components/schemas/DeleteDevicePermanentlyResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /device/reRegister: + get: + tags: + - device + summary: Represents a request to re-register a list of previously deleted devices matching the criteria. + description: Represents a request to re-register a list of previously deleted devices matching the criteria. + operationId: ReRegisterDevicereRegister_Get + parameters: + - name: AgentDeviceIds + in: query + description: Specifies the list of combined agent and device ids. + style: form + schema: + type: array + items: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - device - summary: Represents a request to re-register a list of previously deleted devices matching the criteria + - device + summary: Represents a request to re-register a list of previously deleted devices matching the criteria. description: Represents a request to re-register a list of previously deleted devices matching the criteria. operationId: ReRegisterDevicereRegister_Post requestBody: @@ -8172,17 +13013,50 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /group/deleteMembersPermanently: + get: + tags: + - group + summary: 'Delete all the specified group members from the system. On first call the system will issue a challenge which must be answered and the response supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code.' + description: 'Delete all the specified group members from the system. On first call the system will issue a challenge which must be answered and the response supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code.' + operationId: DeleteGroupMembersPermanentlydeleteMembersPermanently_Get + parameters: + - name: GroupName + in: query + description: Specifies the group name. + schema: + type: string + - name: Response + in: query + description: The response to a previously issued challenge for this request. Without this the call will return a challenge for which the response must be supplied on a subsequently call. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: 'The response to a request to delete a specified Agent from the system. On first call the system will issue a challenge which must be responded to and supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code.' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteDevicePermanentlyResponse' + security: + - Bearer: [ ] post: tags: - - group - summary: Delete all the specified group members from the system. On first call the system will issue a challenge which must be answered and the response supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code. - description: Delete all the specified group members from the system. On first call the system will issue a challenge which must be answered and the response supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code. + - group + summary: 'Delete all the specified group members from the system. On first call the system will issue a challenge which must be answered and the response supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code.' + description: 'Delete all the specified group members from the system. On first call the system will issue a challenge which must be answered and the response supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code.' operationId: DeleteGroupMembersPermanentlydeleteMembersPermanently_Post requestBody: content: @@ -8192,20 +13066,48 @@ paths: x-bodyName: body responses: '200': - description: The response to a request to delete a specified Agent from the system. On first call the system will issue a challenge which must be responded to and supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code. + description: 'The response to a request to delete a specified Agent from the system. On first call the system will issue a challenge which must be responded to and supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code.' content: application/json: schema: $ref: '#/components/schemas/DeleteDevicePermanentlyResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /deviceFilter/add: + get: + tags: + - deviceFilter + summary: Represents a request to add a DeviceFilter. + description: Represents a request to add a DeviceFilter. + operationId: AddDeviceFilteradd_Get + parameters: + - name: DeviceFilter + in: query + description: Specifies the device filter to add. + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response to a get defvice filters request. + content: + application/json: + schema: + $ref: '#/components/schemas/GetDeviceFiltersResponse' + security: + - Bearer: [ ] post: tags: - - deviceFilter - summary: Represents a request to add a DeviceFilter + - deviceFilter + summary: Represents a request to add a DeviceFilter. description: Represents a request to add a DeviceFilter. operationId: AddDeviceFilteradd_Post requestBody: @@ -8222,14 +13124,47 @@ paths: schema: $ref: '#/components/schemas/GetDeviceFiltersResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /deviceFilter/update: + get: + tags: + - deviceFilter + summary: Represents a request to update a DeviceFilter matching the given id. + description: Represents a request to update a DeviceFilter matching the given id. + operationId: UpdateDeviceFilterupdate_Get + parameters: + - name: Name + in: query + description: Specifies the name of the device filter to update. + schema: + type: string + - name: DeviceFilter + in: query + description: Specifies the new device filter. + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response to a get defvice filters request. + content: + application/json: + schema: + $ref: '#/components/schemas/GetDeviceFiltersResponse' + security: + - Bearer: [ ] post: tags: - - deviceFilter - summary: Represents a request to update a DeviceFilter matching the given id + - deviceFilter + summary: Represents a request to update a DeviceFilter matching the given id. description: Represents a request to update a DeviceFilter matching the given id. operationId: UpdateDeviceFilterupdate_Post requestBody: @@ -8246,15 +13181,43 @@ paths: schema: $ref: '#/components/schemas/GetDeviceFiltersResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /deviceFilter/promote: + get: + tags: + - deviceFilter + summary: 'Represents a request to bring the named filter to the head of the list, or to create it at the head of the list if it doesn''t exist.' + description: 'Represents a request to bring the named filter to the head of the list, or to create it at the head of the list if it doesn''t exist.' + operationId: PromoteDeviceFilterpromote_Get + parameters: + - name: DeviceFilter + in: query + description: Specifies the device filter. + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response to a get defvice filters request. + content: + application/json: + schema: + $ref: '#/components/schemas/GetDeviceFiltersResponse' + security: + - Bearer: [ ] post: tags: - - deviceFilter - summary: Represents a request to bring the named filter to the head of the list, or to create it at the head of the list if it doesn't exist. - description: Represents a request to bring the named filter to the head of the list, or to create it at the head of the list if it doesn't exist. + - deviceFilter + summary: 'Represents a request to bring the named filter to the head of the list, or to create it at the head of the list if it doesn''t exist.' + description: 'Represents a request to bring the named filter to the head of the list, or to create it at the head of the list if it doesn''t exist.' operationId: PromoteDeviceFilterpromote_Post requestBody: content: @@ -8270,112 +13233,209 @@ paths: schema: $ref: '#/components/schemas/GetDeviceFiltersResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /deviceFilter/delete: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /deviceFilter/delete: + get: + tags: + - deviceFilter + summary: Represents a request to delete a DeviceFilter matching the criteria. + description: Represents a request to delete a DeviceFilter matching the criteria. + operationId: DeleteDeviceFilterdelete_Get + parameters: + - name: Name + in: query + description: Specifies the name of the device filter to delete. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] + post: + tags: + - deviceFilter + summary: Represents a request to delete a DeviceFilter matching the criteria. + description: Represents a request to delete a DeviceFilter matching the criteria. + operationId: DeleteDeviceFilterdelete_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DeleteDeviceFilter' + x-bodyName: body + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /deviceFilters: + get: + tags: + - deviceFilters + summary: Returns a paged list of DeviceFilter definitions matching the optional name criteria. + description: Returns a paged list of DeviceFilter definitions matching the optional name criteria. + operationId: GetDeviceFilters_Get + parameters: + - name: NameContains + in: query + description: Specifies text to search for in the filter Name + schema: + type: string + - name: Name + in: query + description: Specifies an exact filter Name to search for + schema: + type: string + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response to a get defvice filters request. + content: + application/json: + schema: + $ref: '#/components/schemas/GetDeviceFiltersResponse' + security: + - Bearer: [ ] post: tags: - - deviceFilter - summary: Represents a request to delete a DeviceFilter matching the criteria - description: Represents a request to delete a DeviceFilter matching the criteria. - operationId: DeleteDeviceFilterdelete_Post + - deviceFilters + summary: Returns a paged list of DeviceFilter definitions matching the optional name criteria. + description: Returns a paged list of DeviceFilter definitions matching the optional name criteria. + operationId: GetDeviceFilters_Post requestBody: content: application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/DeleteDeviceFilter' + $ref: '#/components/schemas/GetDeviceFilters' x-bodyName: body responses: - '204': - description: No Content + '200': + description: The response to a get defvice filters request. content: - application/json: {} + application/json: + schema: + $ref: '#/components/schemas/GetDeviceFiltersResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /deviceFilters: + - $ref: '#/components/parameters/Accept' + /groupMembers/add: get: tags: - - deviceFilters - summary: Returns a paged list of DeviceFilter definitions matching the optional name criteria - description: Returns a paged list of DeviceFilter definitions matching the optional name criteria. - operationId: GetDeviceFilters_Get + - groupMembers + summary: A request to add the specified Groups and Agents group members to the named group. + description: A request to add the specified Groups and Agents group members to the named group. + operationId: AddGroupMembersadd_Get parameters: - - name: NameContains - in: query - description: Specifies text to search for in the filter Name - schema: - type: string - - name: Name - in: query - description: Specifies an exact filter Name to search for - schema: - type: string - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: GroupName + in: query + description: The internal name/id of the group to add to. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Groups + in: query + description: The names of groups to add to the parent. + style: form + schema: + type: array + items: + type: string + - name: Agents + in: query + description: The Agents to add to the parent. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/Agent' + - name: AgentDeviceIds + in: query + description: The AgentDeviceIds of agents to add to the parent. Used as an alternative to Agents property. + style: form + schema: + type: array + items: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: - '200': - description: The response to a get defvice filters request. + '204': + description: No Content content: - application/json: - schema: - $ref: '#/components/schemas/GetDeviceFiltersResponse' + application/json: { } security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /groupMembers/add: + - Bearer: [ ] post: tags: - - groupMembers - summary: A request to add the specified Groups and Agents group members to the named group + - groupMembers + summary: A request to add the specified Groups and Agents group members to the named group. description: A request to add the specified Groups and Agents group members to the named group. operationId: AddGroupMembersadd_Post requestBody: @@ -8388,16 +13448,58 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /groupMembers/delete: + get: + tags: + - groupMembers + summary: A request to remove group or device members from the named group. + description: A request to remove group or device members from the named group. + operationId: DeleteGroupMembersdelete_Get + parameters: + - name: GroupName + in: query + description: The name of the parent group to remove from. + schema: + type: string + - name: Groups + in: query + description: The names of groups to remove from the parent. + style: form + schema: + type: array + items: + type: string + - name: AgentDeviceIds + in: query + description: The agent device ids to remove from the parent. + style: form + schema: + type: array + items: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - groupMembers - summary: A request to remove group or device members from the named group + - groupMembers + summary: A request to remove group or device members from the named group. description: A request to remove group or device members from the named group. operationId: DeleteGroupMembersdelete_Post requestBody: @@ -8410,36 +13512,58 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /deviceOnlineStatus: get: tags: - - deviceOnlineStatus + - deviceOnlineStatus summary: Gets an indication of the device's online/offline status description: Gets an indication of the device's online/offline status operationId: GetDeviceOnlineStatus_Get parameters: - - name: AgentId - in: query - description: Specifies the id of the agent. - schema: - type: string - - name: DeviceId - in: query - description: Specifies the id of the device. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: AgentId + in: query + description: Specifies the id of the agent. + schema: + type: string + - name: DeviceId + in: query + description: Specifies the id of the device. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: string + type: string + security: + - Bearer: [ ] + post: + tags: + - deviceOnlineStatus + summary: Gets an indication of the device's online/offline status + description: Gets an indication of the device's online/offline status + operationId: GetDeviceOnlineStatus_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetDeviceOnlineStatus' + x-bodyName: body responses: '200': description: Success @@ -8449,60 +13573,112 @@ paths: title: string type: string security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /deviceSettings/update: get: tags: - - deviceSettings - summary: Gets the device settings for the device, based on the global device settings and any device specific overrides. - description: Gets the device settings for the device, based on the global device settings and any device specific overrides. + - deviceSettings + summary: 'Gets the device settings for the device, based on the global device settings and any device specific overrides.' + description: 'Gets the device settings for the device, based on the global device settings and any device specific overrides.' operationId: UpdateDeviceSettingsupdate_Get parameters: - - name: AgentId - in: query - description: Specifies the id of the agent. Either AgentId and DeviceId or GroupName must be supplied. - schema: - type: string - - name: DeviceId - in: query - description: Specifies the id of the device. Either AgentId and DeviceId or GroupName must be supplied. - schema: - type: string - - name: FileLiveTrackingRequiresBaselineCompletion - in: query - description: Specifies whether a full baseline must be completed before live file tracking can be started. Optional - schema: - type: boolean - - name: GroupName - in: query - description: Specifies the group name. Either AgentId and DeviceId or GroupName must be supplied. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: AgentId + in: query + description: Specifies the id of the agent. Either AgentId and DeviceId or GroupName must be supplied. + schema: + type: string + - name: DeviceId + in: query + description: Specifies the id of the device. Either AgentId and DeviceId or GroupName must be supplied. + schema: + type: string + - name: FileLiveTrackingRequiresBaselineCompletion + in: query + description: Specifies whether a full baseline must be completed before live file tracking can be started. Optional + schema: + type: boolean + - name: GroupName + in: query + description: Specifies the group name. Either AgentId and DeviceId or GroupName must be supplied. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: 'The device settings represents the device specific options such as customised local ui password details, and tracker performance settings.' + content: + application/json: + schema: + $ref: '#/components/schemas/DeviceSettings' + security: + - Bearer: [ ] + post: + tags: + - deviceSettings + summary: 'Gets the device settings for the device, based on the global device settings and any device specific overrides.' + description: 'Gets the device settings for the device, based on the global device settings and any device specific overrides.' + operationId: UpdateDeviceSettingsupdate_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateDeviceSettings' + x-bodyName: body responses: '200': - description: The device settings represents the device specific options such as customised local ui password details, and tracker performance settings. + description: 'The device settings represents the device specific options such as customised local ui password details, and tracker performance settings.' content: application/json: schema: $ref: '#/components/schemas/DeviceSettings' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /deviceCredentials/add: + get: + tags: + - deviceCredentials + summary: A request to associate named credentials with an agent. + description: A request to associate named credentials with an agent. + operationId: AddCredentialsToAgentDeviceadd_Get + parameters: + - name: AgentDevice + in: query + description: Specifies the agent device. + schema: + $ref: '#/components/schemas/AgentDevice' + - name: CredentialsKey + in: query + description: Specifies the credentials key. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - deviceCredentials - summary: A request to associate named credentials with an agent + - deviceCredentials + summary: A request to associate named credentials with an agent. description: A request to associate named credentials with an agent. operationId: AddCredentialsToAgentDeviceadd_Post requestBody: @@ -8515,16 +13691,47 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /deviceCredentials/delete: + get: + tags: + - deviceCredentials + summary: A request to remove named credentials from an agent. + description: A request to remove named credentials from an agent. + operationId: RemoveCredentialsFromAgentDevicedelete_Get + parameters: + - name: AgentDevice + in: query + description: Specifies the agent device. + schema: + $ref: '#/components/schemas/AgentDevice' + - name: CredentialKey + in: query + description: Specifies the credential key. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - deviceCredentials - summary: A request to remove named credentials from an agent + - deviceCredentials + summary: A request to remove named credentials from an agent. description: A request to remove named credentials from an agent. operationId: RemoveCredentialsFromAgentDevicedelete_Post requestBody: @@ -8537,16 +13744,47 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /deviceName/update: + get: + tags: + - deviceName + summary: A request to update the display name of an agent. + description: A request to update the display name of an agent. + operationId: SetAgentDeviceNameupdate_Get + parameters: + - name: AgentDevice + in: query + description: Specifies the agent device. + schema: + $ref: '#/components/schemas/AgentDevice' + - name: DeviceName + in: query + description: Specifies the device name. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - deviceName - summary: A request to update the display name of an agent + - deviceName + summary: A request to update the display name of an agent. description: A request to update the display name of an agent. operationId: SetAgentDeviceNameupdate_Post requestBody: @@ -8559,16 +13797,50 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /deviceHostType/update: + get: + tags: + - deviceHostType + summary: A request to update the host type of an agent. + description: A request to update the host type of an agent. + operationId: SetAgentHostTypeupdate_Get + parameters: + - name: AgentDevice + in: query + description: Specifies the agent device. + schema: + $ref: '#/components/schemas/AgentDevice' + - name: HostType + in: query + description: Specifies the device type. + schema: + enum: + - Unknown + - Unix + - Windows + - Network + - Database + - Cloud + - ESX + - Splunk + type: string + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - deviceHostType - summary: A request to update the host type of an agent + - deviceHostType + summary: A request to update the host type of an agent. description: A request to update the host type of an agent. operationId: SetAgentHostTypeupdate_Post requestBody: @@ -8581,16 +13853,44 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /testAgentCredentials: + get: + tags: + - testAgentCredentials + summary: Ask an agent to test the credentials for a device it is proxying. + description: Ask an agent to test the credentials for a device it is proxying. + operationId: TestAgentCredentials_Get + parameters: + - name: AgentDeviceId + in: query + description: Specifies the agent device id whose credentials are to be tested. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/TestAgentCredentialsResponse' + security: + - Bearer: [ ] post: tags: - - testAgentCredentials - summary: Ask an agent to test the credentials for a device it is proxying + - testAgentCredentials + summary: Ask an agent to test the credentials for a device it is proxying. description: Ask an agent to test the credentials for a device it is proxying. operationId: TestAgentCredentials_Post requestBody: @@ -8607,24 +13907,48 @@ paths: schema: $ref: '#/components/schemas/TestAgentCredentialsResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /ipBlocking: get: tags: - - ipBlocking - summary: Gets details of ip addresses that have been blocked + - ipBlocking + summary: Gets details of ip addresses that have been blocked. description: Gets details of ip addresses that have been blocked. operationId: GetIpBlocking_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: List + type: array + items: + $ref: '#/components/schemas/IpAddressBlockingStatus' + security: + - Bearer: [ ] + post: + tags: + - ipBlocking + summary: Gets details of ip addresses that have been blocked. + description: Gets details of ip addresses that have been blocked. + operationId: GetIpBlocking_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetIpBlocking' + x-bodyName: body responses: '200': description: Success @@ -8636,14 +13960,52 @@ paths: items: $ref: '#/components/schemas/IpAddressBlockingStatus' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /ipBlocking/add: + get: + tags: + - ipBlocking + summary: Adds manual blocking of a specified ip address until a specified time. + description: Adds manual blocking of a specified ip address until a specified time. + operationId: AddIpBlockingadd_Get + parameters: + - name: IpAddress + in: query + description: Gets or sets the ip address. + schema: + type: string + - name: ExpiresUtc + in: query + description: Gets or sets the expiry date time in UTC. + schema: + type: string + format: date-time + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: List + type: array + items: + $ref: '#/components/schemas/IpAddressBlockingStatus' + security: + - Bearer: [ ] post: tags: - - ipBlocking - summary: Adds manual blocking of a specified ip address until a specified time + - ipBlocking + summary: Adds manual blocking of a specified ip address until a specified time. description: Adds manual blocking of a specified ip address until a specified time. operationId: AddIpBlockingadd_Post requestBody: @@ -8663,14 +14025,45 @@ paths: items: $ref: '#/components/schemas/IpAddressBlockingStatus' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /ipBlocking/delete: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /ipBlocking/delete: + get: + tags: + - ipBlocking + summary: Removes blocking of a specified ip address. + description: Removes blocking of a specified ip address. + operationId: DeleteIpBlockingdelete_Get + parameters: + - name: IpAddress + in: query + description: Gets or sets the ip address to remove blocking from. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: List + type: array + items: + $ref: '#/components/schemas/IpAddressBlockingStatus' + security: + - Bearer: [ ] post: tags: - - ipBlocking - summary: Removes blocking of a specified ip address + - ipBlocking + summary: Removes blocking of a specified ip address. description: Removes blocking of a specified ip address. operationId: DeleteIpBlockingdelete_Post requestBody: @@ -8690,14 +14083,37 @@ paths: items: $ref: '#/components/schemas/IpAddressBlockingStatus' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /discoverDevices: + get: + tags: + - discoverDevices + summary: Discovers devices to be added as proxied devices to a master device. + description: Discovers devices to be added as proxied devices to a master device. + operationId: DiscoverDevices_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverDevicesResponse' + security: + - Bearer: [ ] post: tags: - - discoverDevices - summary: Discovers devices to be added as proxied devices to a master device + - discoverDevices + summary: Discovers devices to be added as proxied devices to a master device. description: Discovers devices to be added as proxied devices to a master device. operationId: DiscoverDevices_Post requestBody: @@ -8714,14 +14130,35 @@ paths: schema: $ref: '#/components/schemas/DiscoverDevicesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /discoveredDevices: + get: + tags: + - discoveredDevices + summary: Submits discovered devices as a response to a DiscoverDevices request. + description: Submits discovered devices as a response to a DiscoverDevices request. + operationId: SubmitDiscoveredDevices_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - discoveredDevices - summary: Submits discovered devices as a response to a DiscoverDevices request + - discoveredDevices + summary: Submits discovered devices as a response to a DiscoverDevices request. description: Submits discovered devices as a response to a DiscoverDevices request. operationId: SubmitDiscoveredDevices_Post requestBody: @@ -8734,16 +14171,90 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /acknowledgeEvents: + get: + tags: + - acknowledgeEvents + summary: Acknowledge a list of events as 'planned'. + description: Acknowledge a list of events as 'planned'. + operationId: AcknowledgeEvents_Get + parameters: + - name: EventIds + in: query + description: Specifies the event ids to update. + style: form + schema: + type: array + items: + type: string + - name: PlannedChangeId + in: query + description: Specifies the planned change instance id to acknowledge these events under. + schema: + type: string + - name: NewStatus + in: query + description: Specifies the new status for the alert events. + schema: + enum: + - Unknown + - NotRelevant + - Planned + - Unplanned + - UnderInvestigation + - Acknowledged + type: string + x-nullable: false + - name: DeviceFilter + in: query + description: 'Gets or sets the device selection, null implies all devices.' + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: EventFilter + in: query + description: 'Gets or sets the event selection, null implies all events.' + schema: + $ref: '#/components/schemas/EventFilter' + - name: StartUtc + in: query + description: 'Gets or sets the start of the period to return events for, null implies all.' + schema: + type: string + format: date-time + - name: EndUtc + in: query + description: 'Gets or sets the end of the period to return events for, null implies up to current time.' + schema: + type: string + format: date-time + - name: TextSearch + in: query + description: Gets or sets the text search value. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - acknowledgeEvents - summary: Acknowledge a list of events as 'planned' + - acknowledgeEvents + summary: Acknowledge a list of events as 'planned'. description: Acknowledge a list of events as 'planned'. operationId: AcknowledgeEvents_Post requestBody: @@ -8756,15 +14267,41 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /resubmitEvents: + get: + tags: + - resubmitEvents + summary: 'Re-submit the specified events (i.e for re-consideration by the pipeline re: planned changes).' + description: 'Re-submit the specified events (i.e for re-consideration by the pipeline re: planned changes).' + operationId: ResubmitEvents_Get + parameters: + - name: GetEvents + in: query + description: Gets or sets the event IDs to re-submit + schema: + $ref: '#/components/schemas/GetEvents' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - resubmitEvents + - resubmitEvents summary: 'Re-submit the specified events (i.e for re-consideration by the pipeline re: planned changes).' description: 'Re-submit the specified events (i.e for re-consideration by the pipeline re: planned changes).' operationId: ResubmitEvents_Post @@ -8778,31 +14315,52 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /event/history/{EventId}: + - $ref: '#/components/parameters/Accept' + '/event/history/{EventId}': get: tags: - - event - summary: Get the event history for one specific event + - event + summary: Get the event history for one specific event. description: Get the event history for one specific event. operationId: GetEventHistoryhistoryEventId_Get parameters: - - name: EventId - in: query - description: Specifies the specific event id to retrieve history for. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: EventId + in: query + description: Specifies the specific event id to retrieve history for. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Describes an event's history. + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventHistoryResponse' + security: + - Bearer: [ ] + post: + tags: + - event + summary: Get the event history for one specific event. + description: Get the event history for one specific event. + operationId: GetEventHistoryhistoryEventId_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetEventHistory' + x-bodyName: body responses: '200': description: Describes an event's history. @@ -8811,74 +14369,95 @@ paths: schema: $ref: '#/components/schemas/GetEventHistoryResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /eventDeviceGroups: get: tags: - - eventDeviceGroups - summary: Gets the list of groups that the devices associated with the given events are members of. If Intersection is true, only the groups of which all devices are a member are returned. This function is used to determine the possible groups to associate a new planned change with, such that the events will be covered by it. - description: Gets the list of groups that the devices associated with the given events are members of. If Intersection is true, only the groups of which all devices are a member are returned. This function is used to determine the possible groups to associate a new planned change with, such that the events will be covered by it. + - eventDeviceGroups + summary: 'Gets the list of groups that the devices associated with the given events are members of. If Intersection is true, only the groups of which all devices are a member are returned. This function is used to determine the possible groups to associate a new planned change with, such that the events will be covered by it.' + description: 'Gets the list of groups that the devices associated with the given events are members of. If Intersection is true, only the groups of which all devices are a member are returned. This function is used to determine the possible groups to associate a new planned change with, such that the events will be covered by it.' operationId: GetEventDeviceGroups_Get parameters: - - name: EventIds - in: query - description: ' Gets or sets the event ids.' - style: form - schema: - type: array - items: + - name: EventIds + in: query + description: ' Gets or sets the event ids.' + style: form + schema: + type: array + items: + type: string + - name: Intersection + in: query + description: ' Gets or sets a value indicating whether the returned set of groups is the intersection of the event''s device memberships, if true, or the union. If intersection, only the groups of which all devices are a member are returned.' + schema: + type: boolean + x-nullable: false + - name: DeviceFilter + in: query + description: 'Gets or sets the device selection, null implies all devices.' + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: EventFilter + in: query + description: 'Gets or sets the event selection, null implies all events.' + schema: + $ref: '#/components/schemas/EventFilter' + - name: StartUtc + in: query + description: 'Gets or sets the start of the period to return events for, null implies all.' + schema: + type: string + format: date-time + - name: EndUtc + in: query + description: 'Gets or sets the end of the period to return events for, null implies up to current time.' + schema: + type: string + format: date-time + - name: TextSearch + in: query + description: Gets or sets the text search value. + schema: type: string - - name: Intersection - in: query - description: ' Gets or sets a value indicating whether the returned set of groups is the intersection of the event''s device memberships, if true, or the union. If intersection, only the groups of which all devices are a member are returned.' - schema: - type: boolean - x-nullable: false - - name: DeviceFilter - in: query - description: Gets or sets the device selection, null implies all devices. - schema: - $ref: '#/components/schemas/DeviceFilter' - - name: EventFilter - in: query - description: Gets or sets the event selection, null implies all events. - schema: - $ref: '#/components/schemas/EventFilter' - - name: StartUtc - in: query - description: Gets or sets the start of the period to return events for, null implies all. - schema: - type: string - format: date-time - - name: EndUtc - in: query - description: Gets or sets the end of the period to return events for, null implies up to current time. - schema: - type: string - format: date-time - - name: TextSearch - in: query - description: Gets or sets the text search value. - schema: - type: string - - name: GroupFindMode - in: query - description: Gets or sets how the returned group list is built. - schema: - enum: - - GroupFindFromAgents - - GroupFindFromEvents - type: string - x-nullable: false - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: GroupFindMode + in: query + description: Gets or sets how the returned group list is built. + schema: + enum: + - GroupFindFromAgents + - GroupFindFromEvents + type: string + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Represents the list of groups that the devices associated with the given events are members of. + content: + application/json: + schema: + $ref: '#/components/schemas/GetEventDeviceGroupsResponse' + security: + - Bearer: [ ] + post: + tags: + - eventDeviceGroups + summary: 'Gets the list of groups that the devices associated with the given events are members of. If Intersection is true, only the groups of which all devices are a member are returned. This function is used to determine the possible groups to associate a new planned change with, such that the events will be covered by it.' + description: 'Gets the list of groups that the devices associated with the given events are members of. If Intersection is true, only the groups of which all devices are a member are returned. This function is used to determine the possible groups to associate a new planned change with, such that the events will be covered by it.' + operationId: GetEventDeviceGroups_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetEventDeviceGroups' + x-bodyName: body responses: '200': description: Represents the list of groups that the devices associated with the given events are members of. @@ -8887,13 +14466,44 @@ paths: schema: $ref: '#/components/schemas/GetEventDeviceGroupsResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /setCommentsForEvents: + get: + tags: + - setCommentsForEvents + summary: Set comments for events + description: Set comments for events + operationId: SetCommentForEvents_Get + parameters: + - name: GetEvents + in: query + description: Event filter to specify the events to set the comment for + schema: + $ref: '#/components/schemas/GetEvents' + - name: Comment + in: query + description: The comment + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - setCommentsForEvents + - setCommentsForEvents summary: Set comments for events description: Set comments for events operationId: SetCommentForEvents_Post @@ -8907,66 +14517,87 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /inventory: get: tags: - - inventory - summary: Retrieves a list of inventory items from the hub service + - inventory + summary: Retrieves a list of inventory items from the hub service. description: Retrieves a list of inventory items from the hub service. operationId: GetInventory_Get parameters: - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The paging response base. + content: + application/json: + schema: + $ref: '#/components/schemas/GetInventoryResponse' + security: + - Bearer: [ ] + post: + tags: + - inventory + summary: Retrieves a list of inventory items from the hub service. + description: Retrieves a list of inventory items from the hub service. + operationId: GetInventory_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetInventory' + x-bodyName: body responses: '200': description: The paging response base. @@ -8975,140 +14606,182 @@ paths: schema: $ref: '#/components/schemas/GetInventoryResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /agentInventoryGrouped: get: tags: - - agentInventoryGrouped - summary: Retrieves a list of agent inventory items grouped by their inventory item ids from the hub service + - agentInventoryGrouped + summary: Retrieves a list of agent inventory items grouped by their inventory item ids from the hub service. description: Retrieves a list of agent inventory items grouped by their inventory item ids from the hub service. operationId: GetAgentInventoryItemsGrouped_Get parameters: - - name: DeviceFilter - in: query - description: Specifies the agents to search for by id or group membership. - schema: - $ref: '#/components/schemas/DeviceFilter' - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: DeviceFilter + in: query + description: Specifies the agents to search for by id or group membership. + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The paging response base. + content: + application/json: + schema: + $ref: '#/components/schemas/GetAgentInventoryItemsGroupedResponse' + security: + - Bearer: [ ] + post: + tags: + - agentInventoryGrouped + summary: Retrieves a list of agent inventory items grouped by their inventory item ids from the hub service. + description: Retrieves a list of agent inventory items grouped by their inventory item ids from the hub service. + operationId: GetAgentInventoryItemsGrouped_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetAgentInventoryItemsGrouped' + x-bodyName: body + responses: + '200': + description: The paging response base. + content: + application/json: + schema: + $ref: '#/components/schemas/GetAgentInventoryItemsGroupedResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /agentInventoryAgentsDetail: + get: + tags: + - agentInventoryAgentsDetail + summary: Retrieves a list of agents with a specific inventory item id from the hub service. + description: Retrieves a list of agents with a specific inventory item id from the hub service. + operationId: GetAgentInventoryAgentsDetail_Get + parameters: + - name: DeviceFilter + in: query + description: Specifies the agents to search for by id or group membership. + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': description: The paging response base. content: application/json: schema: - $ref: '#/components/schemas/GetAgentInventoryItemsGroupedResponse' + $ref: '#/components/schemas/GetAgentInventoryAgentsDetailResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /agentInventoryAgentsDetail: - get: + - Bearer: [ ] + post: tags: - - agentInventoryAgentsDetail - summary: Retrieves a list of agents with a specific inventory item id from the hub service + - agentInventoryAgentsDetail + summary: Retrieves a list of agents with a specific inventory item id from the hub service. description: Retrieves a list of agents with a specific inventory item id from the hub service. - operationId: GetAgentInventoryAgentsDetail_Get - parameters: - - name: DeviceFilter - in: query - description: Specifies the agents to search for by id or group membership. - schema: - $ref: '#/components/schemas/DeviceFilter' - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: - type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + operationId: GetAgentInventoryAgentsDetail_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetAgentInventoryAgentsDetail' + x-bodyName: body responses: '200': description: The paging response base. @@ -9117,88 +14790,109 @@ paths: schema: $ref: '#/components/schemas/GetAgentInventoryAgentsDetailResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /inventory/vulnerabilityOverview: get: tags: - - inventory - summary: A request to return the vulnerability overview matching the device filter + - inventory + summary: A request to return the vulnerability overview matching the device filter. description: A request to return the vulnerability overview matching the device filter. operationId: GetVulnerabilityOverviewvulnerabilityOverview_Get parameters: - - name: DeviceFilter - in: query - description: Specifies the agents to search for by id or group membership. - schema: - $ref: '#/components/schemas/DeviceFilter' - - name: StartDateUtc - in: query - description: Specifies the Utc start date from which the vulnerability changes are retrieved. - schema: - type: string - format: date-time - x-nullable: false - - name: ShowIgnored - in: query - description: Specifies whether to include excluded/suppressed Cves in the overview statistics. - schema: - type: boolean - x-nullable: false - - name: GetStatus - in: query - description: Get the vulnerability scanner status as well - schema: - type: boolean - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: DeviceFilter + in: query + description: Specifies the agents to search for by id or group membership. + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: StartDateUtc + in: query + description: Specifies the Utc start date from which the vulnerability changes are retrieved. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + format: date-time + x-nullable: false + - name: ShowIgnored + in: query + description: Specifies whether to include excluded/suppressed Cves in the overview statistics. + schema: + type: boolean + x-nullable: false + - name: GetStatus + in: query + description: Get the vulnerability scanner status as well + schema: + type: boolean + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response object for GetVulnerabilityOverview + content: + application/json: + schema: + $ref: '#/components/schemas/GetVulnerabilityOverviewResponse' + security: + - Bearer: [ ] + post: + tags: + - inventory + summary: A request to return the vulnerability overview matching the device filter. + description: A request to return the vulnerability overview matching the device filter. + operationId: GetVulnerabilityOverviewvulnerabilityOverview_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetVulnerabilityOverview' + x-bodyName: body responses: '200': description: The response object for GetVulnerabilityOverview @@ -9207,69 +14901,90 @@ paths: schema: $ref: '#/components/schemas/GetVulnerabilityOverviewResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /inventory/vulnerabilities: get: tags: - - inventory - summary: A request to return the vulnerabilities in an estate matching the device and vulnerability filters + - inventory + summary: A request to return the vulnerabilities in an estate matching the device and vulnerability filters. description: A request to return the vulnerabilities in an estate matching the device and vulnerability filters. operationId: GetVulnerabilityvulnerabilities_Get parameters: - - name: DeviceFilter - in: query - description: Specifies the agents to search for by id or group membership. - schema: - $ref: '#/components/schemas/DeviceFilter' - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: DeviceFilter + in: query + description: Specifies the agents to search for by id or group membership. + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response object for GetVulnerability + content: + application/json: + schema: + $ref: '#/components/schemas/GetVulnerabilityResponse' + security: + - Bearer: [ ] + post: + tags: + - inventory + summary: A request to return the vulnerabilities in an estate matching the device and vulnerability filters. + description: A request to return the vulnerabilities in an estate matching the device and vulnerability filters. + operationId: GetVulnerabilityvulnerabilities_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetVulnerability' + x-bodyName: body responses: '200': description: The response object for GetVulnerability @@ -9278,76 +14993,97 @@ paths: schema: $ref: '#/components/schemas/GetVulnerabilityResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /inventory/softwareVulnerability: get: tags: - - inventory - summary: A request to return the software vulnerability matching the device filter + - inventory + summary: A request to return the software vulnerability matching the device filter. description: A request to return the software vulnerability matching the device filter. operationId: GetSoftwareVulnerabilitysoftwareVulnerability_Get parameters: - - name: DeviceFilter - in: query - description: Specifies the agents to search for by id or group membership. - schema: - $ref: '#/components/schemas/DeviceFilter' - - name: StartDateUtc - in: query - description: Specifies the Utc start date from which the vulnerability changes are retrieved. - schema: - type: string - format: date-time - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: DeviceFilter + in: query + description: Specifies the agents to search for by id or group membership. + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: StartDateUtc + in: query + description: Specifies the Utc start date from which the vulnerability changes are retrieved. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + format: date-time + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response object for GetSoftwareVulnerability + content: + application/json: + schema: + $ref: '#/components/schemas/GetSoftwareVulnerabilityResponse' + security: + - Bearer: [ ] + post: + tags: + - inventory + summary: A request to return the software vulnerability matching the device filter. + description: A request to return the software vulnerability matching the device filter. + operationId: GetSoftwareVulnerabilitysoftwareVulnerability_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetSoftwareVulnerability' + x-bodyName: body responses: '200': description: The response object for GetSoftwareVulnerability @@ -9356,14 +15092,37 @@ paths: schema: $ref: '#/components/schemas/GetSoftwareVulnerabilityResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /inventory/update: + get: + tags: + - inventory + summary: Marks an inventory item a requiring an update / refresh. + description: Marks an inventory item a requiring an update / refresh. + operationId: MarkInventoryItemsRequiringUpdateupdate_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/Object' + security: + - Bearer: [ ] post: tags: - - inventory - summary: Marks an inventory item a requiring an update / refresh + - inventory + summary: Marks an inventory item a requiring an update / refresh. description: Marks an inventory item a requiring an update / refresh. operationId: MarkInventoryItemsRequiringUpdateupdate_Post requestBody: @@ -9380,74 +15139,95 @@ paths: schema: $ref: '#/components/schemas/Object' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /inventory/softwareVulnerabilityDetail: get: tags: - - inventory - summary: A request to return the software vulnerability matching the device filter + - inventory + summary: A request to return the software vulnerability matching the device filter. description: A request to return the software vulnerability matching the device filter. operationId: GetSoftwareVulnerabilityDetailsoftwareVulnerabilityDetail_Get parameters: - - name: SoftwareId - in: query - description: Specifies the software item to search for. - schema: - type: string - - name: CpeName - in: query - description: Specifies the CPE Name to search for. - schema: - type: string - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: SoftwareId + in: query + description: Specifies the software item to search for. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: CpeName + in: query + description: Specifies the CPE Name to search for. + schema: + type: string + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response object for GetSoftwareVulnerabilityDetail + content: + application/json: + schema: + $ref: '#/components/schemas/GetSoftwareVulnerabilityDetailResponse' + security: + - Bearer: [ ] + post: + tags: + - inventory + summary: A request to return the software vulnerability matching the device filter. + description: A request to return the software vulnerability matching the device filter. + operationId: GetSoftwareVulnerabilityDetailsoftwareVulnerabilityDetail_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetSoftwareVulnerabilityDetail' + x-bodyName: body responses: '200': description: The response object for GetSoftwareVulnerabilityDetail @@ -9456,76 +15236,97 @@ paths: schema: $ref: '#/components/schemas/GetSoftwareVulnerabilityDetailResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /inventory/deviceVulnerability: get: tags: - - inventory - summary: A request to return the device vulnerability matching the device filter + - inventory + summary: A request to return the device vulnerability matching the device filter. description: A request to return the device vulnerability matching the device filter. operationId: GetDeviceVulnerabilitydeviceVulnerability_Get parameters: - - name: DeviceFilter - in: query - description: Specifies the agents to search for by id or group membership. - schema: - $ref: '#/components/schemas/DeviceFilter' - - name: StartDateUtc - in: query - description: Specifies the Utc start date from which the vulnerability changes are retrieved. - schema: - type: string - format: date-time - x-nullable: false - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: DeviceFilter + in: query + description: Specifies the agents to search for by id or group membership. + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: StartDateUtc + in: query + description: Specifies the Utc start date from which the vulnerability changes are retrieved. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + format: date-time + x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response object for GetDeviceVulnerability + content: + application/json: + schema: + $ref: '#/components/schemas/GetDeviceVulnerabilityResponse' + security: + - Bearer: [ ] + post: + tags: + - inventory + summary: A request to return the device vulnerability matching the device filter. + description: A request to return the device vulnerability matching the device filter. + operationId: GetDeviceVulnerabilitydeviceVulnerability_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetDeviceVulnerability' + x-bodyName: body responses: '200': description: The response object for GetDeviceVulnerability @@ -9534,69 +15335,90 @@ paths: schema: $ref: '#/components/schemas/GetDeviceVulnerabilityResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /inventory/deviceVulnerabilityDetail: get: tags: - - inventory - summary: A request to return the device vulnerability matching the device filter + - inventory + summary: A request to return the device vulnerability matching the device filter. description: A request to return the device vulnerability matching the device filter. operationId: GetDeviceVulnerabilityDetaildeviceVulnerabilityDetail_Get parameters: - - name: AgentDeviceId - in: query - description: Specifies the agents to search for by id or group membership. - schema: - type: string - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: AgentDeviceId + in: query + description: Specifies the agents to search for by id or group membership. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response object for GetDeviceVulnerabilityDetail + content: + application/json: + schema: + $ref: '#/components/schemas/GetDeviceVulnerabilityDetailResponse' + security: + - Bearer: [ ] + post: + tags: + - inventory + summary: A request to return the device vulnerability matching the device filter. + description: A request to return the device vulnerability matching the device filter. + operationId: GetDeviceVulnerabilityDetaildeviceVulnerabilityDetail_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetDeviceVulnerabilityDetail' + x-bodyName: body responses: '200': description: The response object for GetDeviceVulnerabilityDetail @@ -9605,40 +15427,85 @@ paths: schema: $ref: '#/components/schemas/GetDeviceVulnerabilityDetailResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /inventory/relatedSoftwareVulnerabilityDetail: get: tags: - - inventory + - inventory summary: Get a list of CVEs that are related to the specified CPE but not directly (e.g previous versions etc) description: Get a list of CVEs that are related to the specified CPE but not directly (e.g previous versions etc) operationId: GetCvesForRelatedCpesrelatedSoftwareVulnerabilityDetail_Get parameters: - - name: CpeName - in: query - schema: - type: string - - name: InventoryItemId - in: query - schema: - type: string - - name: MaxItemsToReturn - in: query - schema: - type: integer - format: int32 - x-nullable: false - - name: ReturnFullCveData - in: query - schema: - type: boolean - x-nullable: false - - name: VulnerabilityFilter - in: query - schema: - type: string + - name: CpeName + in: query + schema: + type: string + - name: InventoryItemId + in: query + schema: + type: string + - name: MaxItemsToReturn + in: query + schema: + type: integer + format: int32 + x-nullable: false + - name: ReturnFullCveData + in: query + schema: + type: boolean + x-nullable: false + - name: VulnerabilityFilter + in: query + schema: + type: string + responses: + '200': + description: The response object for GetCvesForRelatedCpes + content: + application/json: + schema: + $ref: '#/components/schemas/GetCvesForRelatedCpesResponse' + security: + - Bearer: [ ] + post: + tags: + - inventory + summary: Get a list of CVEs that are related to the specified CPE but not directly (e.g previous versions etc) + description: Get a list of CVEs that are related to the specified CPE but not directly (e.g previous versions etc) + operationId: GetCvesForRelatedCpesrelatedSoftwareVulnerabilityDetail_Post + parameters: + - name: CpeName + in: query + schema: + type: string + - name: InventoryItemId + in: query + schema: + type: string + - name: MaxItemsToReturn + in: query + schema: + type: integer + format: int32 + x-nullable: false + - name: ReturnFullCveData + in: query + schema: + type: boolean + x-nullable: false + - name: VulnerabilityFilter + in: query + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GetCvesForRelatedCpes' + x-bodyName: body responses: '200': description: The response object for GetCvesForRelatedCpes @@ -9647,69 +15514,90 @@ paths: schema: $ref: '#/components/schemas/GetCvesForRelatedCpesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /inventory/vulnerableDeviceDetail: get: tags: - - inventory - summary: A request to return the vulnerable devices matching the CVE + - inventory + summary: A request to return the vulnerable devices matching the CVE. description: A request to return the vulnerable devices matching the CVE. operationId: GetVulnerableDeviceDetailvulnerableDeviceDetail_Get parameters: - - name: CveId - in: query - description: Specifies the cve to search for vulnerable devices. - schema: - type: string - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: CveId + in: query + description: Specifies the cve to search for vulnerable devices. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response object for GetDeviceVulnerabilityDetail + content: + application/json: + schema: + $ref: '#/components/schemas/GetVulnerableDeviceDetailResponse' + security: + - Bearer: [ ] + post: + tags: + - inventory + summary: A request to return the vulnerable devices matching the CVE. + description: A request to return the vulnerable devices matching the CVE. + operationId: GetVulnerableDeviceDetailvulnerableDeviceDetail_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetVulnerableDeviceDetail' + x-bodyName: body responses: '200': description: The response object for GetDeviceVulnerabilityDetail @@ -9718,14 +15606,37 @@ paths: schema: $ref: '#/components/schemas/GetVulnerableDeviceDetailResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /inventory/ignoreCves: + get: + tags: + - inventory + summary: A request to ignore one or more Cves until a given data. + description: A request to ignore one or more Cves until a given data. + operationId: IgnoreCveItemignoreCves_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/Object' + security: + - Bearer: [ ] post: tags: - - inventory - summary: A request to ignore one or more Cves until a given data + - inventory + summary: A request to ignore one or more Cves until a given data. description: A request to ignore one or more Cves until a given data. operationId: IgnoreCveItemignoreCves_Post requestBody: @@ -9742,64 +15653,85 @@ paths: schema: $ref: '#/components/schemas/Object' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /vulnerabilityscanstatus: get: tags: - - vulnerabilityscanstatus - summary: A request to return the software vulnerability scan status + - vulnerabilityscanstatus + summary: A request to return the software vulnerability scan status. description: A request to return the software vulnerability scan status. operationId: GetVulnerabilityScanStatus_Get parameters: - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response object for GetVulnerabilityStatus + content: + application/json: + schema: + $ref: '#/components/schemas/GetVulnerabilityScanStatusResponse' + security: + - Bearer: [ ] + post: + tags: + - vulnerabilityscanstatus + summary: A request to return the software vulnerability scan status. + description: A request to return the software vulnerability scan status. + operationId: GetVulnerabilityScanStatus_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetVulnerabilityScanStatus' + x-bodyName: body responses: '200': description: The response object for GetVulnerabilityStatus @@ -9808,13 +15740,13 @@ paths: schema: $ref: '#/components/schemas/GetVulnerabilityScanStatusResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /log4netConfigs/all: get: tags: - - log4netConfigs + - log4netConfigs summary: Retrieves a list of log4net logger configurations description: Retrieves a list of log4net logger configurations operationId: GetAllLog4NetConfigItemsall_Get @@ -9826,23 +15758,44 @@ paths: schema: $ref: '#/components/schemas/GetAllLog4NetConfigItemsResponse' security: - - Bearer: [] + - Bearer: [ ] + post: + tags: + - log4netConfigs + summary: Retrieves a list of log4net logger configurations + description: Retrieves a list of log4net logger configurations + operationId: GetAllLog4NetConfigItemsall_Post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GetAllLog4NetConfigItems' + x-bodyName: body + responses: + '200': + description: Response for getting log4net configuration items + content: + application/json: + schema: + $ref: '#/components/schemas/GetAllLog4NetConfigItemsResponse' + security: + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /log4netConfigs/add: post: tags: - - log4netConfigs + - log4netConfigs operationId: AddLog4NetConfigItemadd_Post parameters: - - name: LoggerName - in: query - schema: - type: string - - name: LogLevel - in: query - schema: - type: string + - name: LoggerName + in: query + schema: + type: string + - name: LogLevel + in: query + schema: + type: string requestBody: content: application/json: @@ -9857,27 +15810,27 @@ paths: schema: $ref: '#/components/schemas/AddLog4NetConfigItemResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /log4netConfigs/update: post: tags: - - log4netConfigs + - log4netConfigs operationId: UpdateLog4NetConfigItemupdate_Post parameters: - - name: Id - in: query - schema: - type: string - - name: LoggerName - in: query - schema: - type: string - - name: LogLevel - in: query - schema: - type: string + - name: Id + in: query + schema: + type: string + - name: LoggerName + in: query + schema: + type: string + - name: LogLevel + in: query + schema: + type: string requestBody: content: application/json: @@ -9892,19 +15845,19 @@ paths: schema: $ref: '#/components/schemas/UpdateLog4NetConfigItemResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /log4netConfigs/delete: post: tags: - - log4netConfigs + - log4netConfigs operationId: DeleteLog4NetConfigItemdelete_Post parameters: - - name: Id - in: query - schema: - type: string + - name: Id + in: query + schema: + type: string requestBody: content: application/json: @@ -9919,64 +15872,85 @@ paths: schema: $ref: '#/components/schemas/DeleteLog4NetConfigItemResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /log4netConfigs: get: tags: - - log4netConfigs - summary: Retrieves a list of log4net logger configurations with pagination support + - log4netConfigs + summary: Retrieves a list of log4net logger configurations with pagination support. description: Retrieves a list of log4net logger configurations with pagination support. operationId: GetLog4NetConfigItems_Get parameters: - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Response for getting log4net configuration items with pagination support + content: + application/json: + schema: + $ref: '#/components/schemas/GetLog4NetConfigItemsResponse' + security: + - Bearer: [ ] + post: + tags: + - log4netConfigs + summary: Retrieves a list of log4net logger configurations with pagination support. + description: Retrieves a list of log4net logger configurations with pagination support. + operationId: GetLog4NetConfigItems_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetLog4NetConfigItems' + x-bodyName: body responses: '200': description: Response for getting log4net configuration items with pagination support @@ -9985,24 +15959,45 @@ paths: schema: $ref: '#/components/schemas/GetLog4NetConfigItemsResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /reportDescription: get: tags: - - reportDescription - summary: Returns a description for the specified report + - reportDescription + summary: Returns a description for the specified report. description: Returns a description for the specified report. operationId: GetReportDescription_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseStatus' + security: + - Bearer: [ ] + post: + tags: + - reportDescription + summary: Returns a description for the specified report. + description: Returns a description for the specified report. + operationId: GetReportDescription_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetReportDescription' + x-bodyName: body responses: '200': description: Success @@ -10011,24 +16006,48 @@ paths: schema: $ref: '#/components/schemas/ResponseStatus' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /reportDifferences: get: tags: - - reportDifferences - summary: Get a list of differences between two reports runs + - reportDifferences + summary: Get a list of differences between two reports runs. description: Get a list of differences between two reports runs. operationId: GetReportChangeDetails_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: List + type: array + items: + $ref: '#/components/schemas/ReportChangeDetail' + security: + - Bearer: [ ] + post: + tags: + - reportDifferences + summary: Get a list of differences between two reports runs. + description: Get a list of differences between two reports runs. + operationId: GetReportChangeDetails_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetReportChangeDetails' + x-bodyName: body responses: '200': description: Success @@ -10040,64 +16059,85 @@ paths: items: $ref: '#/components/schemas/ReportChangeDetail' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /reportData/{reportId}: + - $ref: '#/components/parameters/Accept' + '/reportData/{reportId}': get: tags: - - reportData - summary: Gets report results for the specified agent, device or task id. - description: Gets report results for the specified agent, device or task id. + - reportData + summary: 'Gets report results for the specified agent, device or task id.' + description: 'Gets report results for the specified agent, device or task id.' operationId: GetReportDatareportId_Get parameters: - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: A returned list of report results for displaying in a grid. + content: + application/json: + schema: + $ref: '#/components/schemas/GetReportDataResponse' + security: + - Bearer: [ ] + post: + tags: + - reportData + summary: 'Gets report results for the specified agent, device or task id.' + description: 'Gets report results for the specified agent, device or task id.' + operationId: GetReportDatareportId_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetReportData' + x-bodyName: body responses: '200': description: A returned list of report results for displaying in a grid. @@ -10106,41 +16146,62 @@ paths: schema: $ref: '#/components/schemas/GetReportDataResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /availableReports: get: tags: - - availableReports + - availableReports summary: ' Gets a list of available reports for a specified group or agent.' description: ' Gets a list of available reports for a specified group or agent.' operationId: GetAvailableReports_Get parameters: - - name: DeviceFilter - in: query - description: Specifies the devices for which to retrieve the available reports. - schema: - $ref: '#/components/schemas/DeviceFilter' - - name: StartDateUtc - in: query - description: Specifies a start date to search from. - schema: - type: string - format: date-time - - name: EndDateUtc - in: query - description: Specifies a start date to search up to. - schema: - type: string - format: date-time - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: DeviceFilter + in: query + description: Specifies the devices for which to retrieve the available reports. + schema: + $ref: '#/components/schemas/DeviceFilter' + - name: StartDateUtc + in: query + description: Specifies a start date to search from. + schema: + type: string + format: date-time + - name: EndDateUtc + in: query + description: Specifies a start date to search up to. + schema: + type: string + format: date-time + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Describes the available reports for the specified devices. + content: + application/json: + schema: + $ref: '#/components/schemas/GetAvailableReportsResponse' + security: + - Bearer: [ ] + post: + tags: + - availableReports + summary: ' Gets a list of available reports for a specified group or agent.' + description: ' Gets a list of available reports for a specified group or agent.' + operationId: GetAvailableReports_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetAvailableReports' + x-bodyName: body responses: '200': description: Describes the available reports for the specified devices. @@ -10149,29 +16210,50 @@ paths: schema: $ref: '#/components/schemas/GetAvailableReportsResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /userDashboard: get: tags: - - userDashboard - summary: Gets the user dashboard widget layout + - userDashboard + summary: Gets the user dashboard widget layout. description: Gets the user dashboard widget layout. operationId: GetUserDashboard_Get parameters: - - name: Id - in: query - description: The identifier of the dashboard to get. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Id + in: query + description: The identifier of the dashboard to get. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Details of a specific dashboard layout. + content: + application/json: + schema: + $ref: '#/components/schemas/DashboardLayout' + security: + - Bearer: [ ] + post: + tags: + - userDashboard + summary: Gets the user dashboard widget layout. + description: Gets the user dashboard widget layout. + operationId: GetUserDashboard_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetUserDashboard' + x-bodyName: body responses: '200': description: Details of a specific dashboard layout. @@ -10180,29 +16262,50 @@ paths: schema: $ref: '#/components/schemas/DashboardLayout' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /userDashboard/named: get: tags: - - userDashboard - summary: Gets the user dashboard widget layout by name + - userDashboard + summary: Gets the user dashboard widget layout by name. description: Gets the user dashboard widget layout by name. operationId: GetUserDashboardByNamenamed_Get parameters: - - name: Name - in: query - description: The name of the dashboard to get. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Name + in: query + description: The name of the dashboard to get. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Details of a specific dashboard layout. + content: + application/json: + schema: + $ref: '#/components/schemas/DashboardLayout' + security: + - Bearer: [ ] + post: + tags: + - userDashboard + summary: Gets the user dashboard widget layout by name. + description: Gets the user dashboard widget layout by name. + operationId: GetUserDashboardByNamenamed_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetUserDashboardByName' + x-bodyName: body responses: '200': description: Details of a specific dashboard layout. @@ -10211,14 +16314,55 @@ paths: schema: $ref: '#/components/schemas/DashboardLayout' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /userDashboard/save: + get: + tags: + - userDashboard + summary: Stores the user dashboard widget layout. + description: Stores the user dashboard widget layout. + operationId: SaveUserDashboardsave_Get + parameters: + - name: Id + in: query + description: 'The identifier of the dashboard to get. If not supplied a new record is created, else existing is updated.' + schema: + type: string + - name: Name + in: query + description: The name of the dashboard. + schema: + type: string + - name: Widgets + in: query + description: The widgets. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/DashboardWidgetSpec' + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Response to the SaveUserDashboard request. + content: + application/json: + schema: + $ref: '#/components/schemas/SaveUserDashboardResponse' + security: + - Bearer: [ ] post: tags: - - userDashboard - summary: Stores the user dashboard widget layout + - userDashboard + summary: Stores the user dashboard widget layout. description: Stores the user dashboard widget layout. operationId: SaveUserDashboardsave_Post requestBody: @@ -10228,21 +16372,47 @@ paths: $ref: '#/components/schemas/SaveUserDashboard' x-bodyName: body responses: - '200': - description: Response to the SaveUserDashboard request. + '200': + description: Response to the SaveUserDashboard request. + content: + application/json: + schema: + $ref: '#/components/schemas/SaveUserDashboardResponse' + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /userDashboard/delete: + get: + tags: + - userDashboard + summary: Deletes the user dashboard widget layout. + description: Deletes the user dashboard widget layout. + operationId: DeleteUserDashboarddelete_Get + parameters: + - name: Id + in: query + description: The identifier of the dashboard to delete. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content content: - application/json: - schema: - $ref: '#/components/schemas/SaveUserDashboardResponse' + application/json: { } security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /userDashboard/delete: + - Bearer: [ ] post: tags: - - userDashboard - summary: Deletes the user dashboard widget layout + - userDashboard + summary: Deletes the user dashboard widget layout. description: Deletes the user dashboard widget layout. operationId: DeleteUserDashboarddelete_Post requestBody: @@ -10255,26 +16425,47 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /userSettings: get: tags: - - userSettings - summary: Gets the user settings and selections + - userSettings + summary: Gets the user settings and selections. description: Gets the user settings and selections. operationId: GetUserSettings_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Response to the GetUserSettings request. + content: + application/json: + schema: + $ref: '#/components/schemas/GetUserSettingsResponse' + security: + - Bearer: [ ] + post: + tags: + - userSettings + summary: Gets the user settings and selections. + description: Gets the user settings and selections. + operationId: GetUserSettings_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetUserSettings' + x-bodyName: body responses: '200': description: Response to the GetUserSettings request. @@ -10283,14 +16474,52 @@ paths: schema: $ref: '#/components/schemas/GetUserSettingsResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /userSettings/save: + get: + tags: + - userSettings + summary: Stores the user settings and selections. + description: Stores the user settings and selections. + operationId: SaveUserSettingssave_Get + parameters: + - name: DashboardId + in: query + description: The user's default dashboard identifier. + schema: + type: string + - name: ThemeId + in: query + description: The user's default theme identifier. + schema: + type: string + - name: HideWelcomePopup + in: query + description: Indicates whether the user has opted to skip the welcome wizard. + schema: + type: boolean + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Response to the GetUserSettings request. + content: + application/json: + schema: + $ref: '#/components/schemas/GetUserSettingsResponse' + security: + - Bearer: [ ] post: tags: - - userSettings - summary: Stores the user settings and selections + - userSettings + summary: Stores the user settings and selections. description: Stores the user settings and selections. operationId: SaveUserSettingssave_Post requestBody: @@ -10307,24 +16536,45 @@ paths: schema: $ref: '#/components/schemas/GetUserSettingsResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /dashboard/widgetTemplates: get: tags: - - dashboard - summary: Gets the dashboard widgets + - dashboard + summary: Gets the dashboard widgets. description: Gets the dashboard widgets. operationId: GetDashboardWidgetswidgetTemplates_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Response to the GetDashboardWidgets request. + content: + application/json: + schema: + $ref: '#/components/schemas/GetDashboardWidgetsResponse' + security: + - Bearer: [ ] + post: + tags: + - dashboard + summary: Gets the dashboard widgets. + description: Gets the dashboard widgets. + operationId: GetDashboardWidgetswidgetTemplates_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetDashboardWidgets' + x-bodyName: body responses: '200': description: Response to the GetDashboardWidgets request. @@ -10333,64 +16583,85 @@ paths: schema: $ref: '#/components/schemas/GetDashboardWidgetsResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /stats/plannedChanges/hours/{PeriodHours}: + - $ref: '#/components/parameters/Accept' + '/stats/plannedChanges/hours/{PeriodHours}': get: tags: - - stats + - stats summary: Stats Service description: Stats Service operationId: GetCurrentPlannedChangesplannedChangeshoursPeriodHours_Get parameters: - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetCurrentPlannedChangesResponse' + security: + - Bearer: [ ] + post: + tags: + - stats + summary: Stats Service + description: Stats Service + operationId: GetCurrentPlannedChangesplannedChangeshoursPeriodHours_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetCurrentPlannedChanges' + x-bodyName: body responses: '200': description: Success @@ -10399,230 +16670,314 @@ paths: schema: $ref: '#/components/schemas/GetCurrentPlannedChangesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /stats/compliancedata/start/{Start}: + - $ref: '#/components/parameters/Accept' + '/stats/compliancedata/start/{Start}': get: tags: - - stats - summary: Get report summaries by report, for either individual devices, or as group average. - description: Get report summaries by report, for either individual devices, or as group average. + - stats + summary: 'Get report summaries by report, for either individual devices, or as group average.' + description: 'Get report summaries by report, for either individual devices, or as group average.' operationId: GetComplianceDatacompliancedatastartStart_Get parameters: - - name: ReportItemId - in: query - description: Specifies the scheduled report item id. - required: true - schema: - type: string - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: ReportItemId + in: query + description: Specifies the scheduled report item id. + required: true + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': - description: Compliance data by report, for either individual devices, or as group average. + description: 'Compliance data by report, for either individual devices, or as group average.' content: application/json: schema: $ref: '#/components/schemas/GetComplianceDataResponse' security: - - Bearer: [] + - Bearer: [ ] + post: + tags: + - stats + summary: 'Get report summaries by report, for either individual devices, or as group average.' + description: 'Get report summaries by report, for either individual devices, or as group average.' + operationId: GetComplianceDatacompliancedatastartStart_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetComplianceData' + x-bodyName: body + responses: + '200': + description: 'Compliance data by report, for either individual devices, or as group average.' + content: + application/json: + schema: + $ref: '#/components/schemas/GetComplianceDataResponse' + security: + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /stats/compliancedata/end/{End}: + - $ref: '#/components/parameters/Accept' + '/stats/compliancedata/end/{End}': get: tags: - - stats - summary: Get report summaries by report, for either individual devices, or as group average. - description: Get report summaries by report, for either individual devices, or as group average. + - stats + summary: 'Get report summaries by report, for either individual devices, or as group average.' + description: 'Get report summaries by report, for either individual devices, or as group average.' operationId: GetComplianceDatacompliancedataendEnd_Get parameters: - - name: ReportItemId - in: query - description: Specifies the scheduled report item id. - required: true - schema: - type: string - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: ReportItemId + in: query + description: Specifies the scheduled report item id. + required: true + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: 'Compliance data by report, for either individual devices, or as group average.' + content: + application/json: + schema: + $ref: '#/components/schemas/GetComplianceDataResponse' + security: + - Bearer: [ ] + post: + tags: + - stats + summary: 'Get report summaries by report, for either individual devices, or as group average.' + description: 'Get report summaries by report, for either individual devices, or as group average.' + operationId: GetComplianceDatacompliancedataendEnd_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetComplianceData' + x-bodyName: body responses: '200': - description: Compliance data by report, for either individual devices, or as group average. + description: 'Compliance data by report, for either individual devices, or as group average.' content: application/json: schema: $ref: '#/components/schemas/GetComplianceDataResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /stats/compliancedata/start/{Start}/end/{End}: + - $ref: '#/components/parameters/Accept' + '/stats/compliancedata/start/{Start}/end/{End}': get: tags: - - stats - summary: Get report summaries by report, for either individual devices, or as group average. - description: Get report summaries by report, for either individual devices, or as group average. + - stats + summary: 'Get report summaries by report, for either individual devices, or as group average.' + description: 'Get report summaries by report, for either individual devices, or as group average.' operationId: GetComplianceDatacompliancedatastartStartendEnd_Get parameters: - - name: ReportItemId - in: query - description: Specifies the scheduled report item id. - required: true - schema: - type: string - - name: CountOnly - in: query - description: A value indicating whether to return a count of results only. - schema: - type: boolean - x-nullable: false - - name: Sort - in: query - description: The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC". - schema: - title: Dictionary - type: object - additionalProperties: + - name: ReportItemId + in: query + description: Specifies the scheduled report item id. + required: true + schema: type: string - description: Dictionary - - name: Skip - in: query - description: The offset into the result set to start at. - schema: - type: integer - format: int32 - - name: Take - in: query - description: The limit number of rows to return. - schema: - type: integer - format: int32 - - name: GenericFilters - in: query - description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. - style: form - schema: - type: array - items: - $ref: '#/components/schemas/PagingQueryFilter' - - name: GenericFilterLogic - in: query - description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. - schema: - type: string - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: CountOnly + in: query + description: A value indicating whether to return a count of results only. + schema: + type: boolean + x-nullable: false + - name: Sort + in: query + description: 'The dictionary of sort fields and sort directions for the query. For example a key value pair might be "ColumnName", "ASC".' + schema: + title: 'Dictionary' + type: object + additionalProperties: + type: string + description: 'Dictionary' + - name: Skip + in: query + description: The offset into the result set to start at. + schema: + type: integer + format: int32 + - name: Take + in: query + description: The limit number of rows to return. + schema: + type: integer + format: int32 + - name: GenericFilters + in: query + description: The list of generic filtering options. These are typically sent from a UI control such as Kendo Grid. + style: form + schema: + type: array + items: + $ref: '#/components/schemas/PagingQueryFilter' + - name: GenericFilterLogic + in: query + description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: 'Compliance data by report, for either individual devices, or as group average.' + content: + application/json: + schema: + $ref: '#/components/schemas/GetComplianceDataResponse' + security: + - Bearer: [ ] + post: + tags: + - stats + summary: 'Get report summaries by report, for either individual devices, or as group average.' + description: 'Get report summaries by report, for either individual devices, or as group average.' + operationId: GetComplianceDatacompliancedatastartStartendEnd_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetComplianceData' + x-bodyName: body responses: '200': - description: Compliance data by report, for either individual devices, or as group average. + description: 'Compliance data by report, for either individual devices, or as group average.' content: application/json: schema: $ref: '#/components/schemas/GetComplianceDataResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /stats/events/invalidate: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /stats/events/invalidate: + get: + tags: + - stats + summary: Represents a request to invalidate the eventcount stats for a group for a specific set of periods. + description: Represents a request to invalidate the eventcount stats for a group for a specific set of periods. + operationId: InvalidateEventCountseventsinvalidate_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - stats - summary: Represents a request to invalidate the eventcount stats for a group for a specific set of periods + - stats + summary: Represents a request to invalidate the eventcount stats for a group for a specific set of periods. description: Represents a request to invalidate the eventcount stats for a group for a specific set of periods. operationId: InvalidateEventCountseventsinvalidate_Post requestBody: @@ -10635,16 +16990,39 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /testSmtpConnection: + get: + tags: + - testSmtpConnection + summary: Tests the specified SMTP details. + description: Tests the specified SMTP details. + operationId: TestSmtpConnection_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseStatus' + security: + - Bearer: [ ] post: tags: - - testSmtpConnection - summary: Tests the specified SMTP details + - testSmtpConnection + summary: Tests the specified SMTP details. description: Tests the specified SMTP details. operationId: TestSmtpConnection_Post requestBody: @@ -10661,14 +17039,37 @@ paths: schema: $ref: '#/components/schemas/ResponseStatus' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /testFastConnection: + get: + tags: + - testFastConnection + summary: Tests the configured Fast service can be contacted. + description: Tests the configured Fast service can be contacted. + operationId: TestFastConnection_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseStatus' + security: + - Bearer: [ ] post: tags: - - testFastConnection - summary: Tests the configured Fast service can be contacted + - testFastConnection + summary: Tests the configured Fast service can be contacted. description: Tests the configured Fast service can be contacted. operationId: TestFastConnection_Post requestBody: @@ -10685,14 +17086,37 @@ paths: schema: $ref: '#/components/schemas/ResponseStatus' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /testFastCustomerConnection: + get: + tags: + - testFastCustomerConnection + summary: Tests the configured Fast service can be contacted using customer credentials. + description: Tests the configured Fast service can be contacted using customer credentials. + operationId: TestFastCustomerConnection_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseStatus' + security: + - Bearer: [ ] post: tags: - - testFastCustomerConnection - summary: Tests the configured Fast service can be contacted using customer credentials + - testFastCustomerConnection + summary: Tests the configured Fast service can be contacted using customer credentials. description: Tests the configured Fast service can be contacted using customer credentials. operationId: TestFastCustomerConnection_Post requestBody: @@ -10709,14 +17133,37 @@ paths: schema: $ref: '#/components/schemas/ResponseStatus' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /testSyslogConnection: + get: + tags: + - testSyslogConnection + summary: Tests the specified SysLog details. + description: Tests the specified SysLog details. + operationId: TestSyslogConnection_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseStatus' + security: + - Bearer: [ ] post: tags: - - testSyslogConnection - summary: Tests the specified SysLog details + - testSyslogConnection + summary: Tests the specified SysLog details. description: Tests the specified SysLog details. operationId: TestSyslogConnection_Post requestBody: @@ -10733,14 +17180,37 @@ paths: schema: $ref: '#/components/schemas/ResponseStatus' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /testServiceNowConnection: + get: + tags: + - testServiceNowConnection + summary: Tests the specified ServiceNow details. + description: Tests the specified ServiceNow details. + operationId: TestServiceNowConnection_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseStatus' + security: + - Bearer: [ ] post: tags: - - testServiceNowConnection - summary: Tests the specified ServiceNow details + - testServiceNowConnection + summary: Tests the specified ServiceNow details. description: Tests the specified ServiceNow details. operationId: TestServiceNowConnection_Post requestBody: @@ -10757,14 +17227,37 @@ paths: schema: $ref: '#/components/schemas/ResponseStatus' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /testAuditorConnection: + get: + tags: + - testAuditorConnection + summary: Tests the specified Auditor details. + description: Tests the specified Auditor details. + operationId: TestAuditorConnection_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ResponseStatus' + security: + - Bearer: [ ] post: tags: - - testAuditorConnection - summary: Tests the specified Auditor details + - testAuditorConnection + summary: Tests the specified Auditor details. description: Tests the specified Auditor details. operationId: TestAuditorConnection_Post requestBody: @@ -10781,24 +17274,48 @@ paths: schema: $ref: '#/components/schemas/ResponseStatus' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /pipelineNodes: get: tags: - - pipelineNodes - summary: Gets a list of pipeline node names + - pipelineNodes + summary: Gets a list of pipeline node names. description: Gets a list of pipeline node names. operationId: GetPipelineNodeList_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: List + type: array + items: + type: string + security: + - Bearer: [ ] + post: + tags: + - pipelineNodes + summary: Gets a list of pipeline node names. + description: Gets a list of pipeline node names. + operationId: GetPipelineNodeList_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetPipelineNodeList' + x-bodyName: body responses: '200': description: Success @@ -10810,14 +17327,37 @@ paths: items: type: string security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /users/add/: + get: + tags: + - users + summary: Add a user. + description: Add a user. + operationId: AddUseradd_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/UserDetails' + security: + - Bearer: [ ] post: tags: - - users - summary: Add a user + - users + summary: Add a user. description: Add a user. operationId: AddUseradd_Post requestBody: @@ -10834,14 +17374,14 @@ paths: schema: $ref: '#/components/schemas/UserDetails' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /users/twoFactorStatus: post: tags: - - users - summary: Represents a pre-authentication request to query the user's Two-factor authentication status. Counts as a sign-in attempt + - users + summary: Represents a pre-authentication request to query the user's Two-factor authentication status. Counts as a sign-in attempt. description: Represents a pre-authentication request to query the user's Two-factor authentication status. Counts as a sign-in attempt. operationId: GetUserTwoFactorStatustwoFactorStatus_Post requestBody: @@ -10858,12 +17398,12 @@ paths: schema: $ref: '#/components/schemas/GetUserTwoFactorStatusResponse' parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /users/elevateTwoFactorStatus: post: tags: - - users - summary: Represents a post-authentication request to elevate the user's Two-factor authentication status. Counts as a sign-in attempt + - users + summary: Represents a post-authentication request to elevate the user's Two-factor authentication status. Counts as a sign-in attempt. description: Represents a post-authentication request to elevate the user's Two-factor authentication status. Counts as a sign-in attempt. operationId: ElevateUserTwoFactorStatuselevateTwoFactorStatus_Post requestBody: @@ -10880,14 +17420,33 @@ paths: schema: $ref: '#/components/schemas/AuthenticateResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /users/validatePassword/: + get: + tags: + - users + summary: Validates a user password. + description: Validates a user password. + operationId: ValidateUserPasswordvalidatePassword_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } post: tags: - - users - summary: Validates a user password + - users + summary: Validates a user password. description: Validates a user password. operationId: ValidateUserPasswordvalidatePassword_Post requestBody: @@ -10900,14 +17459,35 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /users/delete/: + get: + tags: + - users + summary: Delete a user. + description: Delete a user. + operationId: DeleteUserdelete_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - users - summary: Delete a user + - users + summary: Delete a user. description: Delete a user. operationId: DeleteUserdelete_Post requestBody: @@ -10920,26 +17500,47 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /users/{UserName}: + - $ref: '#/components/parameters/Accept' + '/users/{UserName}': get: tags: - - users - summary: Get a user's details + - users + summary: Get a user's details. description: Get a user's details. operationId: GetUserUserName_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/UserDetails' + security: + - Bearer: [ ] + post: + tags: + - users + summary: Get a user's details. + description: Get a user's details. + operationId: GetUserUserName_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetUser' + x-bodyName: body responses: '200': description: Success @@ -10948,14 +17549,35 @@ paths: schema: $ref: '#/components/schemas/UserDetails' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /users/update/: + get: + tags: + - users + summary: Updates stored user details. Note that UserManage permissions are required to manage any user other than the caller. + description: Updates stored user details. Note that UserManage permissions are required to manage any user other than the caller. + operationId: UpdateUserupdate_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - users - summary: Updates stored user details. Note that UserManage permissions are required to manage any user other than the caller + - users + summary: Updates stored user details. Note that UserManage permissions are required to manage any user other than the caller. description: Updates stored user details. Note that UserManage permissions are required to manage any user other than the caller. operationId: UpdateUserupdate_Post requestBody: @@ -10968,16 +17590,37 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /users/updatePassword/: + get: + tags: + - users + summary: Updates stored user password. CurrentPassword property should contain the password of the user attempting to make the change. Note that UserManage permissions are required to manage any user password other than caller's. + description: Updates stored user password. CurrentPassword property should contain the password of the user attempting to make the change. Note that UserManage permissions are required to manage any user password other than caller's. + operationId: UpdateUserPasswordupdatePassword_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - users - summary: Updates stored user password. CurrentPassword property should contain the password of the user attempting to make the change. Note that UserManage permissions are required to manage any user password other than caller's + - users + summary: Updates stored user password. CurrentPassword property should contain the password of the user attempting to make the change. Note that UserManage permissions are required to manage any user password other than caller's. description: Updates stored user password. CurrentPassword property should contain the password of the user attempting to make the change. Note that UserManage permissions are required to manage any user password other than caller's. operationId: UpdateUserPasswordupdatePassword_Post requestBody: @@ -10990,16 +17633,37 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /users/reset/: + get: + tags: + - users + summary: Resets a user. Note that UserManage permissions are required to manage any user other than the caller. + description: Resets a user. Note that UserManage permissions are required to manage any user other than the caller. + operationId: ResetUserreset_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - users - summary: Resets a user. Note that UserManage permissions are required to manage any user other than the caller + - users + summary: Resets a user. Note that UserManage permissions are required to manage any user other than the caller. description: Resets a user. Note that UserManage permissions are required to manage any user other than the caller. operationId: ResetUserreset_Post requestBody: @@ -11012,16 +17676,39 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /users/resetPassword/: + get: + tags: + - users + summary: Resets a user password. Note that this operation is intended to manage any user other than the caller. + description: Resets a user password. Note that this operation is intended to manage any user other than the caller. + operationId: ResetUserPasswordresetPassword_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ResetUserPasswordResponse' + security: + - Bearer: [ ] post: tags: - - users - summary: Resets a user password. Note that this operation is intended to manage any user other than the caller + - users + summary: Resets a user password. Note that this operation is intended to manage any user other than the caller. description: Resets a user password. Note that this operation is intended to manage any user other than the caller. operationId: ResetUserPasswordresetPassword_Post requestBody: @@ -11038,14 +17725,14 @@ paths: schema: $ref: '#/components/schemas/ResetUserPasswordResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /users/previewResetPassword/: post: tags: - - users - summary: Generates a reset password for preview without applying it. Pass the returned PreviewToken to resetPassword to apply it + - users + summary: Generates a reset password for preview without applying it. Pass the returned PreviewToken to resetPassword to apply it. description: Generates a reset password for preview without applying it. Pass the returned PreviewToken to resetPassword to apply it. operationId: PreviewResetUserPasswordpreviewResetPassword_Post requestBody: @@ -11062,14 +17749,35 @@ paths: schema: $ref: '#/components/schemas/PreviewResetUserPasswordResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /users/reset2fa/: + get: + tags: + - users + summary: Resets a user's 2FA . Note that UserManage permissions are required to manage any user other than the caller. + description: Resets a user's 2FA . Note that UserManage permissions are required to manage any user other than the caller. + operationId: ResetUser2fareset2fa_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - users - summary: Resets a user's 2FA . Note that UserManage permissions are required to manage any user other than the caller + - users + summary: Resets a user's 2FA . Note that UserManage permissions are required to manage any user other than the caller. description: Resets a user's 2FA . Note that UserManage permissions are required to manage any user other than the caller. operationId: ResetUser2fareset2fa_Post requestBody: @@ -11082,15 +17790,38 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /exportUserNotifications/: + get: + tags: + - exportUserNotifications + summary: Export users and the notifications they are configured to receive + description: Export users and the notifications they are configured to receive + operationId: ExportUserNotifications_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/Object' + security: + - Bearer: [ ] post: tags: - - exportUserNotifications + - exportUserNotifications summary: Export users and the notifications they are configured to receive description: Export users and the notifications they are configured to receive operationId: ExportUserNotifications_Post @@ -11108,24 +17839,48 @@ paths: schema: $ref: '#/components/schemas/Object' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /timezones: get: tags: - - timezones - summary: Gets a list of possible time zone names + - timezones + summary: Gets a list of possible time zone names. description: Gets a list of possible time zone names. operationId: GetTimeZoneIds_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: List + type: array + items: + $ref: '#/components/schemas/TimeZoneDetail' + security: + - Bearer: [ ] + post: + tags: + - timezones + summary: Gets a list of possible time zone names. + description: Gets a list of possible time zone names. + operationId: GetTimeZoneIds_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetTimeZoneIds' + x-bodyName: body responses: '200': description: Success @@ -11137,24 +17892,46 @@ paths: items: $ref: '#/components/schemas/TimeZoneDetail' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /userHasChangedPassword: get: tags: - - userHasChangedPassword + - userHasChangedPassword summary: Has the current user changed their password from any system assigned one? description: Has the current user changed their password from any system assigned one? operationId: UserHasChangedPassword_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: string + type: boolean + security: + - Bearer: [ ] + post: + tags: + - userHasChangedPassword + summary: Has the current user changed their password from any system assigned one? + description: Has the current user changed their password from any system assigned one? + operationId: UserHasChangedPassword_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserHasChangedPassword' + x-bodyName: body responses: '200': description: Success @@ -11164,14 +17941,37 @@ paths: title: string type: boolean security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /groupAlerts/add: + get: + tags: + - groupAlerts + summary: Add a group alert to a user. + description: Add a group alert to a user. + operationId: AddGroupAlertToUseradd_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/UserDetails' + security: + - Bearer: [ ] post: tags: - - groupAlerts - summary: Add a group alert to a user + - groupAlerts + summary: Add a group alert to a user. description: Add a group alert to a user. operationId: AddGroupAlertToUseradd_Post requestBody: @@ -11188,13 +17988,44 @@ paths: schema: $ref: '#/components/schemas/UserDetails' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /groupAlerts/delete: + get: + tags: + - groupAlerts + summary: Remove a group notification from a user + description: Remove a group notification from a user + operationId: DeleteGroupAlertFromUserdelete_Get + parameters: + - name: UserName + in: query + description: Specifies the user name to delete group alerts / notifications for. + schema: + type: string + - name: Id + in: query + description: Specifies the specific alert / notification to remove. + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - groupAlerts + - groupAlerts summary: Remove a group notification from a user description: Remove a group notification from a user operationId: DeleteGroupAlertFromUserdelete_Post @@ -11208,15 +18039,36 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /groupAlerts/update: + get: + tags: + - groupAlerts + summary: Update a group notification from a user + description: Update a group notification from a user + operationId: UpdateGroupAlertForUserupdate_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - groupAlerts + - groupAlerts summary: Update a group notification from a user description: Update a group notification from a user operationId: UpdateGroupAlertForUserupdate_Post @@ -11230,26 +18082,50 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /groupAlerts: get: tags: - - groupAlerts - summary: Get the configured notifications for the specified group + - groupAlerts + summary: Get the configured notifications for the specified group. description: Get the configured notifications for the specified group. operationId: GetGroupAlertsForGroup_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: List + type: array + items: + $ref: '#/components/schemas/GroupAlert' + security: + - Bearer: [ ] + post: + tags: + - groupAlerts + summary: Get the configured notifications for the specified group. + description: Get the configured notifications for the specified group. + operationId: GetGroupAlertsForGroup_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetGroupAlertsForGroup' + x-bodyName: body responses: '200': description: Success @@ -11261,24 +18137,48 @@ paths: items: $ref: '#/components/schemas/GroupAlert' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /users/: get: tags: - - users - summary: Get a list of user names + - users + summary: Get a list of user names. description: Get a list of user names. operationId: GetUserList_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: List + type: array + items: + $ref: '#/components/schemas/UserDetails' + security: + - Bearer: [ ] + post: + tags: + - users + summary: Get a list of user names. + description: Get a list of user names. + operationId: GetUserList_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetUserList' + x-bodyName: body responses: '200': description: Success @@ -11290,15 +18190,36 @@ paths: items: $ref: '#/components/schemas/UserDetails' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /resetAdminPassword: + get: + tags: + - resetAdminPassword + summary: 'Resets the admin (or named account) password, returning a new temporary password in the response. Can only be called from the local hub console.' + description: 'Resets the admin (or named account) password, returning a new temporary password in the response. Can only be called from the local hub console.' + operationId: ResetAdminPassword_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/Object' post: tags: - - resetAdminPassword - summary: Resets the admin (or named account) password, returning a new temporary password in the response. Can only be called from the local hub console. - description: Resets the admin (or named account) password, returning a new temporary password in the response. Can only be called from the local hub console. + - resetAdminPassword + summary: 'Resets the admin (or named account) password, returning a new temporary password in the response. Can only be called from the local hub console.' + description: 'Resets the admin (or named account) password, returning a new temporary password in the response. Can only be called from the local hub console.' operationId: ResetAdminPassword_Post requestBody: content: @@ -11314,13 +18235,34 @@ paths: schema: $ref: '#/components/schemas/Object' parameters: - - $ref: '#/components/parameters/Accept' - /resetAdminPassword/{AdminName}: + - $ref: '#/components/parameters/Accept' + '/resetAdminPassword/{AdminName}': + get: + tags: + - resetAdminPassword + summary: 'Resets the admin (or named account) password, returning a new temporary password in the response. Can only be called from the local hub console.' + description: 'Resets the admin (or named account) password, returning a new temporary password in the response. Can only be called from the local hub console.' + operationId: ResetAdminPasswordAdminName_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/Object' post: tags: - - resetAdminPassword - summary: Resets the admin (or named account) password, returning a new temporary password in the response. Can only be called from the local hub console. - description: Resets the admin (or named account) password, returning a new temporary password in the response. Can only be called from the local hub console. + - resetAdminPassword + summary: 'Resets the admin (or named account) password, returning a new temporary password in the response. Can only be called from the local hub console.' + description: 'Resets the admin (or named account) password, returning a new temporary password in the response. Can only be called from the local hub console.' operationId: ResetAdminPasswordAdminName_Post requestBody: content: @@ -11336,13 +18278,34 @@ paths: schema: $ref: '#/components/schemas/Object' parameters: - - $ref: '#/components/parameters/Accept' - /resetAdminPassword/{OrganizationId}/{AdminName}: + - $ref: '#/components/parameters/Accept' + '/resetAdminPassword/{OrganizationId}/{AdminName}': + get: + tags: + - resetAdminPassword + summary: 'Resets the admin (or named account) password, returning a new temporary password in the response. Can only be called from the local hub console.' + description: 'Resets the admin (or named account) password, returning a new temporary password in the response. Can only be called from the local hub console.' + operationId: ResetAdminPasswordOrganizationIdAdminName_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/Object' post: tags: - - resetAdminPassword - summary: Resets the admin (or named account) password, returning a new temporary password in the response. Can only be called from the local hub console. - description: Resets the admin (or named account) password, returning a new temporary password in the response. Can only be called from the local hub console. + - resetAdminPassword + summary: 'Resets the admin (or named account) password, returning a new temporary password in the response. Can only be called from the local hub console.' + description: 'Resets the admin (or named account) password, returning a new temporary password in the response. Can only be called from the local hub console.' operationId: ResetAdminPasswordOrganizationIdAdminName_Post requestBody: content: @@ -11358,22 +18321,43 @@ paths: schema: $ref: '#/components/schemas/Object' parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /userRoles: get: tags: - - userRoles - summary: Get a list of user roles defined in the system + - userRoles + summary: Get a list of user roles defined in the system. description: Get a list of user roles defined in the system. operationId: GetUserRoles_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetUserRolesResponse' + security: + - Bearer: [ ] + post: + tags: + - userRoles + summary: Get a list of user roles defined in the system. + description: Get a list of user roles defined in the system. + operationId: GetUserRoles_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetUserRoles' + x-bodyName: body responses: '200': description: Success @@ -11382,42 +18366,120 @@ paths: schema: $ref: '#/components/schemas/GetUserRolesResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /permissions/: get: tags: - - permissions - summary: Gets a list of permissions names defined in the system + - permissions + summary: Gets a list of permissions names defined in the system. description: Gets a list of permissions names defined in the system. operationId: GetPermissions_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: List + type: array + items: + type: string + security: + - Bearer: [ ] + post: + tags: + - permissions + summary: Gets a list of permissions names defined in the system. + description: Gets a list of permissions names defined in the system. + operationId: GetPermissions_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetPermissions' + x-bodyName: body + responses: + '200': + description: Success + content: + application/json: + schema: + title: List + type: array + items: + type: string + security: + - Bearer: [ ] + parameters: + - $ref: '#/components/parameters/Accept' + /userRoles/add: + get: + tags: + - userRoles + summary: Adds a custom user role + description: Adds a custom user role + operationId: AddUserRoleadd_Get + parameters: + - name: Name + in: query + description: Specifies the unique internal name for the role. If this is not supplied the DisplayName is used. + schema: + type: string + - name: DisplayName + in: query + description: Specifies the display name for the role. + required: true + schema: + type: string + - name: ExternalName + in: query + description: Specifies the role name in an external identity provider that corresponds to this role. + schema: + type: string + - name: Permissions + in: query + description: Specifies the list of names of permissions associated with the role. + style: form + schema: + type: array + items: + type: string + - name: ReadOnly + in: query + description: 'Specifies whether the role is read only, or can be edited.' + required: true + schema: + type: boolean + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false responses: '200': description: Success content: application/json: schema: - title: List - type: array - items: - type: string + $ref: '#/components/schemas/AddUserRoleResponse' security: - - Bearer: [] - parameters: - - $ref: '#/components/parameters/Accept' - /userRoles/add: + - Bearer: [ ] post: tags: - - userRoles + - userRoles summary: Adds a custom user role description: Adds a custom user role operationId: AddUserRoleadd_Post @@ -11435,13 +18497,62 @@ paths: schema: $ref: '#/components/schemas/AddUserRoleResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /userRoles/update: + get: + tags: + - userRoles + summary: Update a user role + description: Update a user role + operationId: UpdateUserRoleupdate_Get + parameters: + - name: Name + in: query + description: Specifies the unique internal name for the role. + required: true + schema: + type: string + - name: DisplayName + in: query + description: Specifies the display name for the role. + required: true + schema: + type: string + - name: ExternalName + in: query + description: Specifies the role name in an external identity provider that corresponds to this role. + schema: + type: string + - name: Permissions + in: query + description: Specifies the list of names of permissions associated with the role. + required: true + style: form + schema: + type: array + items: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateUserRoleResponse' + security: + - Bearer: [ ] post: tags: - - userRoles + - userRoles summary: Update a user role description: Update a user role operationId: UpdateUserRoleupdate_Post @@ -11459,14 +18570,37 @@ paths: schema: $ref: '#/components/schemas/UpdateUserRoleResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /userRoles/clone: + get: + tags: + - userRoles + summary: Clone an existing user role. + description: Clone an existing user role. + operationId: CloneUserRoleclone_Get + parameters: + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/UserRole' + security: + - Bearer: [ ] post: tags: - - userRoles - summary: Clone an existing user role + - userRoles + summary: Clone an existing user role. description: Clone an existing user role. operationId: CloneUserRoleclone_Post requestBody: @@ -11483,14 +18617,41 @@ paths: schema: $ref: '#/components/schemas/UserRole' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /userRoles/delete: + get: + tags: + - userRoles + summary: Delete a user role. + description: Delete a user role. + operationId: DeleteUserRoledelete_Get + parameters: + - name: Name + in: query + description: Specifies the internal name of the role to delete. + required: true + schema: + type: string + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - userRoles - summary: Delete a user role + - userRoles + summary: Delete a user role. description: Delete a user role. operationId: DeleteUserRoledelete_Post requestBody: @@ -11503,26 +18664,47 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /licenseInfo: get: tags: - - licenseInfo - summary: Represents a request to get an Organization's license info + - licenseInfo + summary: Represents a request to get an Organization's license info. description: Represents a request to get an Organization's license info. operationId: GetLicenseInfo_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The response to a request to get an Organization's license info. + content: + application/json: + schema: + $ref: '#/components/schemas/GetLicenseInfoResponse' + security: + - Bearer: [ ] + post: + tags: + - licenseInfo + summary: Represents a request to get an Organization's license info. + description: Represents a request to get an Organization's license info. + operationId: GetLicenseInfo_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetLicenseInfo' + x-bodyName: body responses: '200': description: The response to a request to get an Organization's license info. @@ -11531,15 +18713,47 @@ paths: schema: $ref: '#/components/schemas/GetLicenseInfoResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /organization/update: + get: + tags: + - organization + summary: 'Represents a request to update an Organization, used to set the license.' + description: 'Represents a request to update an Organization, used to set the license.' + operationId: UpdateOrganizationupdate_Get + parameters: + - name: License + in: query + description: Specifies the license. + schema: + type: string + - name: AllowInvalidLicense + in: query + description: Specifies a value indicating whether to allow an invalid license in the License. + schema: + type: boolean + x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '204': + description: No Content + content: + application/json: { } + security: + - Bearer: [ ] post: tags: - - organization - summary: Represents a request to update an Organization, used to set the license. - description: Represents a request to update an Organization, used to set the license. + - organization + summary: 'Represents a request to update an Organization, used to set the license.' + description: 'Represents a request to update an Organization, used to set the license.' operationId: UpdateOrganizationupdate_Post requestBody: content: @@ -11551,26 +18765,48 @@ paths: '204': description: No Content content: - application/json: {} + application/json: { } security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /userRolesPermisions/check: get: tags: - - userRolesPermisions - summary: Checks whether the caller, or the named user if supplied, has the specified roles and permissions. - description: Checks whether the caller, or the named user if supplied, has the specified roles and permissions. + - userRolesPermisions + summary: 'Checks whether the caller, or the named user if supplied, has the specified roles and permissions.' + description: 'Checks whether the caller, or the named user if supplied, has the specified roles and permissions.' operationId: HasRoleOrPermissioncheck_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: string + type: boolean + security: + - Bearer: [ ] + post: + tags: + - userRolesPermisions + summary: 'Checks whether the caller, or the named user if supplied, has the specified roles and permissions.' + description: 'Checks whether the caller, or the named user if supplied, has the specified roles and permissions.' + operationId: HasRoleOrPermissioncheck_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/HasRoleOrPermission' + x-bodyName: body responses: '200': description: Success @@ -11580,24 +18816,46 @@ paths: title: string type: boolean security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /userRolesPermissions/check: get: tags: - - userRolesPermissions - summary: Checks whether the caller, or the named user if supplied, has the specified roles and permissions. - description: Checks whether the caller, or the named user if supplied, has the specified roles and permissions. + - userRolesPermissions + summary: 'Checks whether the caller, or the named user if supplied, has the specified roles and permissions.' + description: 'Checks whether the caller, or the named user if supplied, has the specified roles and permissions.' operationId: HasRoleOrPermissioncheck2_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: Success + content: + application/json: + schema: + title: string + type: boolean + security: + - Bearer: [ ] + post: + tags: + - userRolesPermissions + summary: 'Checks whether the caller, or the named user if supplied, has the specified roles and permissions.' + description: 'Checks whether the caller, or the named user if supplied, has the specified roles and permissions.' + operationId: HasRoleOrPermissioncheck2_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/HasRoleOrPermission' + x-bodyName: body responses: '200': description: Success @@ -11607,24 +18865,45 @@ paths: title: string type: boolean security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /userRolesPermisions: get: tags: - - userRolesPermisions - summary: Gets roles and permissions for the caller, or the named user if supplied. - description: Gets roles and permissions for the caller, or the named user if supplied. + - userRolesPermisions + summary: 'Gets roles and permissions for the caller, or the named user if supplied.' + description: 'Gets roles and permissions for the caller, or the named user if supplied.' operationId: GetRolesAndPermissions_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The roles and permissions for the user. + content: + application/json: + schema: + $ref: '#/components/schemas/GetRolesAndPermissionsResponse' + security: + - Bearer: [ ] + post: + tags: + - userRolesPermisions + summary: 'Gets roles and permissions for the caller, or the named user if supplied.' + description: 'Gets roles and permissions for the caller, or the named user if supplied.' + operationId: GetRolesAndPermissions_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetRolesAndPermissions' + x-bodyName: body responses: '200': description: The roles and permissions for the user. @@ -11633,24 +18912,45 @@ paths: schema: $ref: '#/components/schemas/GetRolesAndPermissionsResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /userRolesPermissions: get: tags: - - userRolesPermissions - summary: Gets roles and permissions for the caller, or the named user if supplied. - description: Gets roles and permissions for the caller, or the named user if supplied. + - userRolesPermissions + summary: 'Gets roles and permissions for the caller, or the named user if supplied.' + description: 'Gets roles and permissions for the caller, or the named user if supplied.' operationId: GetRolesAndPermissions2_Get parameters: - - name: Version - in: query - description: Specifies the request version. If specified, this indicates the service model version the request complies with. - schema: - type: integer - format: int32 - x-nullable: false + - name: Version + in: query + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' + schema: + type: integer + format: int32 + x-nullable: false + responses: + '200': + description: The roles and permissions for the user. + content: + application/json: + schema: + $ref: '#/components/schemas/GetRolesAndPermissionsResponse' + security: + - Bearer: [ ] + post: + tags: + - userRolesPermissions + summary: 'Gets roles and permissions for the caller, or the named user if supplied.' + description: 'Gets roles and permissions for the caller, or the named user if supplied.' + operationId: GetRolesAndPermissions2_Post + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/GetRolesAndPermissions' + x-bodyName: body responses: '200': description: The roles and permissions for the user. @@ -11659,54 +18959,54 @@ paths: schema: $ref: '#/components/schemas/GetRolesAndPermissionsResponse' security: - - Bearer: [] + - Bearer: [ ] parameters: - - $ref: '#/components/parameters/Accept' - /auth/{provider}: + - $ref: '#/components/parameters/Accept' + '/auth/{provider}': get: tags: - - auth + - auth summary: Sign In description: Sign In operationId: Authenticateprovider_Get parameters: - - name: provider - in: path - required: true - schema: - type: string - - name: UserName - in: query - schema: - type: string - - name: Password - in: query - schema: - type: string - - name: RememberMe - in: query - schema: - type: boolean - - name: AccessToken - in: query - schema: - type: string - - name: AccessTokenSecret - in: query - schema: - type: string - - name: ReturnUrl - in: query - schema: - type: string - - name: ErrorView - in: query - schema: - type: string - - name: Meta - in: query - schema: - type: string + - name: provider + in: path + required: true + schema: + type: string + - name: UserName + in: query + schema: + type: string + - name: Password + in: query + schema: + type: string + - name: RememberMe + in: query + schema: + type: boolean + - name: AccessToken + in: query + schema: + type: string + - name: AccessTokenSecret + in: query + schema: + type: string + - name: ReturnUrl + in: query + schema: + type: string + - name: ErrorView + in: query + schema: + type: string + - name: Meta + in: query + schema: + type: string responses: '200': description: Success @@ -11716,48 +19016,48 @@ paths: $ref: '#/components/schemas/AuthenticateResponse' post: tags: - - auth + - auth summary: Sign In description: Sign In operationId: Authenticateprovider_Post parameters: - - name: provider - in: path - required: true - schema: - type: string - - name: UserName - in: query - schema: - type: string - - name: Password - in: query - schema: - type: string - - name: RememberMe - in: query - schema: - type: boolean - - name: AccessToken - in: query - schema: - type: string - - name: AccessTokenSecret - in: query - schema: - type: string - - name: ReturnUrl - in: query - schema: - type: string - - name: ErrorView - in: query - schema: - type: string - - name: Meta - in: query - schema: - type: string + - name: provider + in: path + required: true + schema: + type: string + - name: UserName + in: query + schema: + type: string + - name: Password + in: query + schema: + type: string + - name: RememberMe + in: query + schema: + type: boolean + - name: AccessToken + in: query + schema: + type: string + - name: AccessTokenSecret + in: query + schema: + type: string + - name: ReturnUrl + in: query + schema: + type: string + - name: ErrorView + in: query + schema: + type: string + - name: Meta + in: query + schema: + type: string requestBody: content: application/json: @@ -11772,51 +19072,51 @@ paths: schema: $ref: '#/components/schemas/AuthenticateResponse' parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /auth: get: tags: - - auth + - auth summary: Sign In description: Sign In operationId: Authenticate_Get parameters: - - name: provider - in: query - schema: - type: string - - name: UserName - in: query - schema: - type: string - - name: Password - in: query - schema: - type: string - - name: RememberMe - in: query - schema: - type: boolean - - name: AccessToken - in: query - schema: - type: string - - name: AccessTokenSecret - in: query - schema: - type: string - - name: ReturnUrl - in: query - schema: - type: string - - name: ErrorView - in: query - schema: - type: string - - name: Meta - in: query - schema: - type: string + - name: provider + in: query + schema: + type: string + - name: UserName + in: query + schema: + type: string + - name: Password + in: query + schema: + type: string + - name: RememberMe + in: query + schema: + type: boolean + - name: AccessToken + in: query + schema: + type: string + - name: AccessTokenSecret + in: query + schema: + type: string + - name: ReturnUrl + in: query + schema: + type: string + - name: ErrorView + in: query + schema: + type: string + - name: Meta + in: query + schema: + type: string responses: '200': description: Success @@ -11826,47 +19126,47 @@ paths: $ref: '#/components/schemas/AuthenticateResponse' post: tags: - - auth + - auth summary: Sign In description: Sign In operationId: Authenticate_Post parameters: - - name: provider - in: query - schema: - type: string - - name: UserName - in: query - schema: - type: string - - name: Password - in: query - schema: - type: string - - name: RememberMe - in: query - schema: - type: boolean - - name: AccessToken - in: query - schema: - type: string - - name: AccessTokenSecret - in: query - schema: - type: string - - name: ReturnUrl - in: query - schema: - type: string - - name: ErrorView - in: query - schema: - type: string - - name: Meta - in: query - schema: - type: string + - name: provider + in: query + schema: + type: string + - name: UserName + in: query + schema: + type: string + - name: Password + in: query + schema: + type: string + - name: RememberMe + in: query + schema: + type: boolean + - name: AccessToken + in: query + schema: + type: string + - name: AccessTokenSecret + in: query + schema: + type: string + - name: ReturnUrl + in: query + schema: + type: string + - name: ErrorView + in: query + schema: + type: string + - name: Meta + in: query + schema: + type: string requestBody: content: application/json: @@ -11881,21 +19181,21 @@ paths: schema: $ref: '#/components/schemas/AuthenticateResponse' parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' /access-token: get: tags: - - auth + - auth operationId: GetAccessToken_Get parameters: - - name: RefreshToken - in: query - schema: - type: string - - name: Meta - in: query - schema: - type: string + - name: RefreshToken + in: query + schema: + type: string + - name: Meta + in: query + schema: + type: string responses: '200': description: Success @@ -11905,17 +19205,17 @@ paths: $ref: '#/components/schemas/GetAccessTokenResponse' put: tags: - - auth + - auth operationId: GetAccessToken_Create parameters: - - name: RefreshToken - in: query - schema: - type: string - - name: Meta - in: query - schema: - type: string + - name: RefreshToken + in: query + schema: + type: string + - name: Meta + in: query + schema: + type: string requestBody: content: application/json: @@ -11931,17 +19231,17 @@ paths: $ref: '#/components/schemas/GetAccessTokenResponse' post: tags: - - auth + - auth operationId: GetAccessToken_Post parameters: - - name: RefreshToken - in: query - schema: - type: string - - name: Meta - in: query - schema: - type: string + - name: RefreshToken + in: query + schema: + type: string + - name: Meta + in: query + schema: + type: string requestBody: content: application/json: @@ -11957,17 +19257,17 @@ paths: $ref: '#/components/schemas/GetAccessTokenResponse' delete: tags: - - auth + - auth operationId: GetAccessToken_Delete parameters: - - name: RefreshToken - in: query - schema: - type: string - - name: Meta - in: query - schema: - type: string + - name: RefreshToken + in: query + schema: + type: string + - name: Meta + in: query + schema: + type: string responses: '200': description: Success @@ -11976,7 +19276,7 @@ paths: schema: $ref: '#/components/schemas/GetAccessTokenResponse' parameters: - - $ref: '#/components/parameters/Accept' + - $ref: '#/components/parameters/Accept' components: schemas: Object: @@ -11985,9 +19285,9 @@ components: GetAgentPoll: title: GetAgentPoll required: - - UniqueId - - AgentId - - PollTimeUtc + - UniqueId + - AgentId + - PollTimeUtc type: object properties: UniqueId: @@ -12018,7 +19318,7 @@ components: description: Specifies the agent IP v6 addresses. This is optional and typically only sent on initial poll or when the list changes. MachineName: type: string - description: Specifies the agent machine name including custom prefix, and domain prefix, if used. This is optional and typically only sent on initial poll or when the it changes. + description: 'Specifies the agent machine name including custom prefix, and domain prefix, if used. This is optional and typically only sent on initial poll or when the it changes.' FullyQualifiedDomainName: type: string description: Specifies the fully qualified domain name. This is optional and typically only sent on initial poll or when the it changes. @@ -12049,16 +19349,16 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Called by the agent, this returns a list of AgentTasks and latest tracking template definition dates for all the devices the agent manages. + description: 'Called by the agent, this returns a list of AgentTasks and latest tracking template definition dates for all the devices the agent manages.' Dictionary_String_String_: - title: Dictionary + title: 'Dictionary' type: object additionalProperties: type: string - description: Dictionary + description: 'Dictionary' DeviceActivity: title: DeviceActivity type: object @@ -12115,7 +19415,7 @@ components: x-nullable: false IgnoreActiveDates: type: boolean - description: By default only AgentTasks that are currently between their StartDate and EndDate values are returned, this flag returns tasks irrespective of dates. + description: 'By default only AgentTasks that are currently between their StartDate and EndDate values are returned, this flag returns tasks irrespective of dates.' x-nullable: false TaskTextMatchesOneOf: type: array @@ -12145,7 +19445,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Requests information about tasks for the given agent. @@ -12170,9 +19470,9 @@ components: SubmitAgentTaskResultStream: title: SubmitAgentTaskResultStream required: - - AgentId - - DeviceId - - TaskId + - AgentId + - DeviceId + - TaskId type: object properties: RequestStream: @@ -12190,7 +19490,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Used to submit agent task result data to the hub as a stream. @@ -12204,7 +19504,7 @@ components: properties: AgentId: type: string - description: Specifies the agent id. This required for external api callers, but optional internally because the system may update / expire tasks without knowing the AgentId, but external api entry points should ensure it is set to prevent tampering with tasks not owned by the caller. + description: 'Specifies the agent id. This required for external api callers, but optional internally because the system may update / expire tasks without knowing the AgentId, but external api entry points should ensure it is set to prevent tampering with tasks not owned by the caller.' DeviceId: type: string description: 'Specifies the device id. Note: this is optional as the system knows the device id from the task.' @@ -12220,13 +19520,13 @@ components: description: Specifies the result data items. Status: type: string - description: Specifies the status of the task. e.g complete, or error. + description: 'Specifies the status of the task. e.g complete, or error.' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Adds report result data for the given agent report, called by the agent. This is the new format used by the Gen 7 agent. + description: 'Adds report result data for the given agent report, called by the agent. This is the new format used by the Gen 7 agent.' VariableDataValue: title: VariableDataValue type: object @@ -12287,17 +19587,17 @@ components: description: Specifies a value indicating how to match item names specified in ItemNameSpecifier. description: Represents a specification for an item of data to be collected for input to a report rule. Dictionary_String_Dictionary_String_String__: - title: Dictionary> + title: 'Dictionary>' type: object additionalProperties: $ref: '#/components/schemas/Dictionary_String_String_' - description: Dictionary> + description: 'Dictionary>' SubmitAgentTaskResult: title: SubmitAgentTaskResult required: - - AgentId - - DeviceId - - TaskId + - AgentId + - DeviceId + - TaskId type: object properties: AgentId: @@ -12318,23 +19618,23 @@ components: type: array items: $ref: '#/components/schemas/AgentDataItem' - description: Specifies the result data items, when the task result is a list of data items (eg get processes). + description: 'Specifies the result data items, when the task result is a list of data items (eg get processes).' Status: type: string description: Specifies the task status. StatusMessage: type: string - description: Specifies the additional status message, if any. + description: 'Specifies the additional status message, if any.' ReportResultSummary: $ref: '#/components/schemas/ReportResultSummary' RuleItemResults: $ref: '#/components/schemas/Dictionary_String_List_RuleItemResult__' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Adds task result data for the given agent task, called by the agent. + description: 'Adds task result data for the given agent task, called by the agent.' AgentDataItem: title: AgentDataItem type: object @@ -12446,13 +19746,13 @@ components: items: $ref: '#/components/schemas/RuleItemResult' Dictionary_String_List_RuleItemResult__: - title: Dictionary> + title: 'Dictionary>' type: object additionalProperties: type: array items: $ref: '#/components/schemas/RuleItemResult' - description: Dictionary> + description: 'Dictionary>' GetCredentials: title: GetCredentials type: object @@ -12465,7 +19765,7 @@ components: description: Specifies the key (name) of the required credentials. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Get specific credentials for requested type and key (name). @@ -12550,7 +19850,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets matching config templates. @@ -12563,11 +19863,11 @@ components: description: Specifies the report template name. ReturnConfigAsXml: type: boolean - description: For any config that needs to be applied, return as XML. + description: 'For any config that needs to be applied, return as XML.' x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to get a list of variable definitions from a named report to be collected by the agent. @@ -12579,7 +19879,7 @@ components: $ref: '#/components/schemas/AgentDevice' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to get the names of credentials associated with an agent. @@ -12593,7 +19893,7 @@ components: DeviceId: type: string description: The device id for this device. - description: The agent device represents an agent device pairing. For example this may be a router that is reported on by an agent with, or it may be an agent reporting on the device it is installed on in which case AgentId and DeviceId will be the same. + description: 'The agent device represents an agent device pairing. For example this may be a router that is reported on by an agent with, or it may be an agent reporting on the device it is installed on in which case AgentId and DeviceId will be the same.' GetDbCredentialForDatabaseAgentDevice: title: GetDbCredentialForDatabaseAgentDevice type: object @@ -12602,7 +19902,7 @@ components: $ref: '#/components/schemas/AgentDevice' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to get the database credentials associated with a database proxied agent. @@ -12618,14 +19918,14 @@ components: description: Specifies the member type of the member specified by MemberName (AgentDevice or Group). ExcludeInherited: type: boolean - description: Specifies a value indicating whether to exclude inherited groups. This defaults to false meaning that all groups including those that are parents of thoseexplicitly set are returned, for example if Windows 7 group is a member of Windows group, and a device is explicitly a member of Windows 7the function will return 'Windows, Windows 7'. If 'ExcludeInherited' is true, only 'Windows 7' will be returned. + description: 'Specifies a value indicating whether to exclude inherited groups. This defaults to false meaning that all groups including those that are parents of thoseexplicitly set are returned, for example if Windows 7 group is a member of Windows group, and a device is explicitly a member of Windows 7the function will return ''Windows, Windows 7''. If ''ExcludeInherited'' is true, only ''Windows 7'' will be returned.' x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: A request to return groups this agent or group is a member of, including parents of parents etc. + description: 'A request to return groups this agent or group is a member of, including parents of parents etc.' GetAgents: title: GetAgents type: object @@ -12684,7 +19984,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to return agents matching the device filter. @@ -12698,7 +19998,7 @@ components: format: date-time Type: type: string - description: Gets or sets the type, inferred from the presence and number of GroupNames and AgentDeviceIds + description: 'Gets or sets the type, inferred from the presence and number of GroupNames and AgentDeviceIds' GroupMatch: type: string description: Gets or sets the GroupMatchType controlling whether associated sought groups in GroupNames are matched as an exact list or a contains operation. @@ -12744,7 +20044,7 @@ components: type: array items: type: string - description: Gets or sets the proxy agent ids. This is a list of the agent id parts only of the agentDeviceId pairs. Specifying this will return all devices which have these agent ids, i.e. are proxied by the given agents. + description: 'Gets or sets the proxy agent ids. This is a list of the agent id parts only of the agentDeviceId pairs. Specifying this will return all devices which have these agent ids, i.e. are proxied by the given agents.' TextSearch: type: string description: Gets or sets the text search when getting agents from the repository. By default this is a 'StartsWith' search unless TextSearchExactMatch @@ -12754,7 +20054,7 @@ components: x-nullable: false AllSelected: type: boolean - description: Gets a value indicating whether all selected, i.e. no GroupNames or AgentDeviceIds have been specified. + description: 'Gets a value indicating whether all selected, i.e. no GroupNames or AgentDeviceIds have been specified.' x-nullable: false OnlineStatus: type: string @@ -12765,7 +20065,7 @@ components: type: string x-nullable: false description: Gets or sets the online statuses of the devices to return. Optional. - description: Represents a selected group of devices, by membership of groups, or by specific attributes (name, OS etc). This can be used on a GetEvents call but also on any api call that can be filtered by device, for example report results. + description: 'Represents a selected group of devices, by membership of groups, or by specific attributes (name, OS etc). This can be used on a GetEvents call but also on any api call that can be filtered by device, for example report results.' RegisterAgent: title: RegisterAgent type: object @@ -12826,7 +20126,7 @@ components: description: Specifies the Operating System from the list of known Os names. OsUserSpecified: type: string - description: Specifies the operating system as entered by the user. This will override the discovered Os in the UI, if specified. + description: 'Specifies the operating system as entered by the user. This will override the discovered Os in the UI, if specified.' PollPeriodSeconds: type: integer description: Specifies the poll period in seconds. @@ -12844,10 +20144,10 @@ components: x-nullable: false UniqueId: type: string - description: Specifies a value uniquely identifying the agent independent of name or agent id from a previous registration. Used to detect a need to re-register when underlying hub store has been emptied, otherwise the autoincrementing agent id counter can result in clashes as already used ids are reissued to different agents. + description: 'Specifies a value uniquely identifying the agent independent of name or agent id from a previous registration. Used to detect a need to re-register when underlying hub store has been emptied, otherwise the autoincrementing agent id counter can result in clashes as already used ids are reissued to different agents.' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Registers the details of an Agent with the system. @@ -12938,11 +20238,11 @@ components: x-nullable: false ClearUniqueId: type: boolean - description: Specifies that the agent UniqueId should be cleared, allowing registration by another device of the same name, but different UniqueId. + description: 'Specifies that the agent UniqueId should be cleared, allowing registration by another device of the same name, but different UniqueId.' x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Update an Agent's details. @@ -12973,13 +20273,13 @@ components: type: string HostType: type: string - description: Specifies the host type. This broadly indicates whether the device is windows or unix, or a DB or network device. + description: 'Specifies the host type. This broadly indicates whether the device is windows or unix, or a DB or network device.' Os: type: string description: Specifies the operating system as discovered by the agent. OsUserSpecified: type: string - description: Specifies the operating system as entered by the user. This will override the discovered Os in the UI, if specified. + description: 'Specifies the operating system as entered by the user. This will override the discovered Os in the UI, if specified.' KnownOsName: type: string description: Specifes a known OS name from a system defined list. @@ -13057,7 +20357,7 @@ components: description: Specifies the method to use when detecting if a proxed device is online PingTimeoutSeconds: type: integer - description: Specifies the 'OnlineDetection' ping timeout seconds, used with 'CredentialsService.Types.OnlineDetection.Ping'. + description: 'Specifies the ''OnlineDetection'' ping timeout seconds, used with ''CredentialsService.Types.OnlineDetection.Ping''.' format: int32 x-nullable: false TcpConnectPort: @@ -13073,13 +20373,13 @@ components: $ref: '#/components/schemas/DbConnection' CredentialsTestStatus: type: string - description: Specifies the status of the last credentials test, if any. + description: 'Specifies the status of the last credentials test, if any.' CredentialsTestMessage: type: string description: Specifies the a success or failure message associated with the last credentials test. UniqueId: type: string - description: Specifies a value uniquely identifying the agent independent of name or agent id. Used to detect a need to re-register when underlying hub store has been emptied, otherwise the auto incrementing agent id counter can result in clashes as already used ids are reissued to different agents. + description: 'Specifies a value uniquely identifying the agent independent of name or agent id. Used to detect a need to re-register when underlying hub store has been emptied, otherwise the auto incrementing agent id counter can result in clashes as already used ids are reissued to different agents.' IsTestAgent: type: boolean x-nullable: false @@ -13095,7 +20395,7 @@ components: type: string PublicKeyStringsInUse: type: string - description: Represents a remote NNT Agent. May be a 1.x Agent, Gen7 Agent or Express Agent or a proxied device. + description: 'Represents a remote NNT Agent. May be a 1.x Agent, Gen7 Agent or Express Agent or a proxied device.' SearchAgents: title: SearchAgents type: object @@ -13129,7 +20429,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to find agents matching the device filter and search criteria. @@ -13144,7 +20444,7 @@ components: description: A list of agents to pre-register at the hub. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Registers the details of the specified Agents with the system. @@ -13156,7 +20456,7 @@ components: $ref: '#/components/schemas/AgentDevice' AgentDeviceId: type: string - description: Specifies the combined agent and device id, for example 1,1. + description: 'Specifies the combined agent and device id, for example 1,1.' ReturnDocument: type: boolean description: Specifies a value indicating whether return to return a device template object in GetDeviceConfigResponse.DeviceTemplate if trueor an xml string in GetDeviceConfigResponse.Xml if false. @@ -13167,7 +20467,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Get the tracking configuration template from the merged result of the group configurations for the groups the device is in. @@ -13186,10 +20486,10 @@ components: description: Specifies the group name. Either AgentId and DeviceId or GroupName must be supplied. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Gets the device settings for the device or group, based on the global device settings and any group specific overrides. + description: 'Gets the device settings for the device or group, based on the global device settings and any group specific overrides.' GetEvents: title: GetEvents type: object @@ -13199,7 +20499,7 @@ components: description: Gets or sets the query comment so that when slow / repeated queries are identified in the database we can trace them back to a specific query in the code more easily TimeZoneId: type: string - description: Gets or sets the user time zone id. Optional, if supplied the returned Events' DateTimeLocal property is populated with a calculated equivalent local time based on the event DateTimeUtc. + description: 'Gets or sets the user time zone id. Optional, if supplied the returned Events'' DateTimeLocal property is populated with a calculated equivalent local time based on the event DateTimeUtc.' DeviceFilter: $ref: '#/components/schemas/DeviceFilter' EventFilter: @@ -13210,7 +20510,7 @@ components: format: date-time EndUtc: type: string - description: Gets or sets the end of the period to return events for, null implies up to current time. + description: 'Gets or sets the end of the period to return events for, null implies up to current time.' format: date-time StartOffsetSeconds: type: integer @@ -13279,7 +20579,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Retrieves a list of events from the hub service. @@ -13417,13 +20717,13 @@ components: TextLowerInvariant: type: string description: Gets the text as lowercase invariant. - description: The event filter text match specifies text to match, together with and operator an case sensitivity setting. + description: 'The event filter text match specifies text to match, together with and operator an case sensitivity setting.' Dictionary_String_TextMatch_: - title: Dictionary + title: 'Dictionary' type: object additionalProperties: $ref: '#/components/schemas/TextMatch' - description: Dictionary + description: 'Dictionary' ScoreRange: title: ScoreRange type: object @@ -13450,7 +20750,7 @@ components: description: Specifies the list of alert events for the hub to process. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Adds a list of alert events to the system. @@ -13476,7 +20776,7 @@ components: type: array items: type: string - description: Gets or sets the notification reference ids for the alert event. Used when an event is only relevant to a specific template, to enable notifications to only be sent to users subscribed to events for that group. + description: 'Gets or sets the notification reference ids for the alert event. Used when an event is only relevant to a specific template, to enable notifications to only be sent to users subscribed to events for that group.' Comment: type: string description: Gets or sets the event comment. @@ -13509,12 +20809,12 @@ components: x-nullable: false DateDevice: type: string - description: Gets or sets the device date and time of the event, based on the event UtcOffsetHours + description: 'Gets or sets the device date and time of the event, based on the event UtcOffsetHours' format: date-time x-nullable: false DateLocal: type: string - description: Gets or sets the local user's date and time of the event, based on the GetEvents.UserTimeZoneId specified. + description: 'Gets or sets the local user''s date and time of the event, based on the GetEvents.UserTimeZoneId specified.' format: date-time x-nullable: false Status: @@ -13532,7 +20832,7 @@ components: x-nullable: false Origin: type: string - description: Gets or sets the origin of the event (Polling, LiveTracking etc) + description: 'Gets or sets the origin of the event (Polling, LiveTracking etc)' TimeZoneId: type: string description: Gets or sets the time zone id. @@ -13563,12 +20863,12 @@ components: description: Gets a URL of the event to get more details. ExtraInfo: type: string - description: Gets or sets the extra info. Where the event is an alert notification, this contains information about tracker reconfigurations, this property can be used to hold the data in a more easily parsed form. + description: 'Gets or sets the extra info. Where the event is an alert notification, this contains information about tracker reconfigurations, this property can be used to hold the data in a more easily parsed form.' UsedInBaselines: type: array items: $ref: '#/components/schemas/UsedInBaseline' - description: Gets or sets the links indicating whether the event has been used to create or amend a rule in a baseline report, and the action taken. + description: 'Gets or sets the links indicating whether the event has been used to create or amend a rule in a baseline report, and the action taken.' description: The alert event. UsedInBaseline: title: UsedInBaseline @@ -13596,7 +20896,7 @@ components: description: Specifies the list of alert events for the hub to process. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Adds a list of alert events to the system. The response can indicate a rate-limiting back off time. @@ -13611,7 +20911,7 @@ components: description: Specifies the list of baseline events for the hub to process. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Adds a list of baseline events to the system. @@ -13627,7 +20927,7 @@ components: description: 'Gets or sets the baseline reason. ' ConfigId: type: string - description: Gets or sets the config id, a string that uniquely identifies the device configuration that generated the event. This id is also supplied with the SubmitAlertEvents reconfigured NotificationType.AgentActivityNotification alert, telling the system that baseline events from that configuration should now be marked as historical. + description: 'Gets or sets the config id, a string that uniquely identifies the device configuration that generated the event. This id is also supplied with the SubmitAlertEvents reconfigured NotificationType.AgentActivityNotification alert, telling the system that baseline events from that configuration should now be marked as historical.' ProcessingCompleteTimeUtc: type: string description: Gets or sets the processing complete UTC time. @@ -13637,7 +20937,7 @@ components: description: Gets or sets the current notification status of the event ChangeType: type: string - description: Gets or sets the change type, specifies whether this is a new, changed or deleted event of the given Types.EventType + description: 'Gets or sets the change type, specifies whether this is a new, changed or deleted event of the given Types.EventType' AttributeSeparators: $ref: '#/components/schemas/Dictionary_String_String_' CurrentAttributes: @@ -13647,7 +20947,7 @@ components: description: Gets or sets the event data. ItemName: type: string - description: Gets or sets the name of the item that this event is about. May be a file path, command, windows update id, database table name etc. + description: 'Gets or sets the name of the item that this event is about. May be a file path, command, windows update id, database table name etc.' ItemTypeId: type: integer description: Gets or sets the item type id. @@ -13701,12 +21001,12 @@ components: x-nullable: false DateDevice: type: string - description: Gets or sets the device date and time of the event, based on the event UtcOffsetHours + description: 'Gets or sets the device date and time of the event, based on the event UtcOffsetHours' format: date-time x-nullable: false DateLocal: type: string - description: Gets or sets the local user's date and time of the event, based on the GetEvents.UserTimeZoneId specified. + description: 'Gets or sets the local user''s date and time of the event, based on the GetEvents.UserTimeZoneId specified.' format: date-time x-nullable: false Status: @@ -13724,7 +21024,7 @@ components: x-nullable: false Origin: type: string - description: Gets or sets the origin of the event (Polling, LiveTracking etc) + description: 'Gets or sets the origin of the event (Polling, LiveTracking etc)' TimeZoneId: type: string description: Gets or sets the time zone id. @@ -13755,12 +21055,12 @@ components: description: Gets a URL of the event to get more details. ExtraInfo: type: string - description: Gets or sets the extra info. Where the event is an alert notification, this contains information about tracker reconfigurations, this property can be used to hold the data in a more easily parsed form. + description: 'Gets or sets the extra info. Where the event is an alert notification, this contains information about tracker reconfigurations, this property can be used to hold the data in a more easily parsed form.' UsedInBaselines: type: array items: $ref: '#/components/schemas/UsedInBaseline' - description: Gets or sets the links indicating whether the event has been used to create or amend a rule in a baseline report, and the action taken. + description: 'Gets or sets the links indicating whether the event has been used to create or amend a rule in a baseline report, and the action taken.' description: The device event. SubmitBaselineEventsLimited: title: SubmitBaselineEventsLimited @@ -13773,7 +21073,7 @@ components: description: Specifies the list of baseline events for the hub to process. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Adds a list of baseline events to the system. The response can indicate a rate-limiting back off time. @@ -13788,7 +21088,7 @@ components: description: Specifies the list of device events for the hub to process. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Adds a list of device change events to the system. @@ -13798,7 +21098,7 @@ components: properties: BaselineType: type: string - description: Gets or sets the baseline type, from None (normal device change event), current baseline state event, historical baseline event. + description: 'Gets or sets the baseline type, from None (normal device change event), current baseline state event, historical baseline event.' ProcessingCompleteTimeUtc: type: string description: ' Gets or sets the processing complete UTC time.' @@ -13808,12 +21108,12 @@ components: description: Gets or sets the current notification status of the event ChangeType: type: string - description: Gets or sets the change type, specifies whether this is a new, changed or deleted event of the given Types.EventType + description: 'Gets or sets the change type, specifies whether this is a new, changed or deleted event of the given Types.EventType' ChangedAttributes: type: array items: type: string - description: Gets or sets the names of the changed attributes, if any. + description: 'Gets or sets the names of the changed attributes, if any.' AttributeSeparators: $ref: '#/components/schemas/Dictionary_String_String_' CurrentAttributes: @@ -13823,7 +21123,7 @@ components: description: Gets or sets the event data. ItemName: type: string - description: Gets or sets the name of the item that this event is about. May be a file path, command, windows update id, database table name etc. + description: 'Gets or sets the name of the item that this event is about. May be a file path, command, windows update id, database table name etc.' ItemTypeId: type: integer description: Gets or sets the item type id. @@ -13846,12 +21146,12 @@ components: type: array items: type: string - description: Gets or sets the notification reference ids for the device event. Used when an event is only relevant to a specific template, to enable notifications to only be sent to users subscribed to events for that group. + description: 'Gets or sets the notification reference ids for the device event. Used when an event is only relevant to a specific template, to enable notifications to only be sent to users subscribed to events for that group.' TextDifferences: type: array items: $ref: '#/components/schemas/TextDifference' - description: List of line text differences, for process output tracker content comparison + description: 'List of line text differences, for process output tracker content comparison' Comment: type: string description: Gets or sets the event comment. @@ -13884,12 +21184,12 @@ components: x-nullable: false DateDevice: type: string - description: Gets or sets the device date and time of the event, based on the event UtcOffsetHours + description: 'Gets or sets the device date and time of the event, based on the event UtcOffsetHours' format: date-time x-nullable: false DateLocal: type: string - description: Gets or sets the local user's date and time of the event, based on the GetEvents.UserTimeZoneId specified. + description: 'Gets or sets the local user''s date and time of the event, based on the GetEvents.UserTimeZoneId specified.' format: date-time x-nullable: false Status: @@ -13907,7 +21207,7 @@ components: x-nullable: false Origin: type: string - description: Gets or sets the origin of the event (Polling, LiveTracking etc) + description: 'Gets or sets the origin of the event (Polling, LiveTracking etc)' TimeZoneId: type: string description: Gets or sets the time zone id. @@ -13938,12 +21238,12 @@ components: description: Gets a URL of the event to get more details. ExtraInfo: type: string - description: Gets or sets the extra info. Where the event is an alert notification, this contains information about tracker reconfigurations, this property can be used to hold the data in a more easily parsed form. + description: 'Gets or sets the extra info. Where the event is an alert notification, this contains information about tracker reconfigurations, this property can be used to hold the data in a more easily parsed form.' UsedInBaselines: type: array items: $ref: '#/components/schemas/UsedInBaseline' - description: Gets or sets the links indicating whether the event has been used to create or amend a rule in a baseline report, and the action taken. + description: 'Gets or sets the links indicating whether the event has been used to create or amend a rule in a baseline report, and the action taken.' description: The device event. TextDifference: title: TextDifference @@ -13965,7 +21265,7 @@ components: description: Specifies the list of device events for the hub to process. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Adds a list of device change events to the system. The response can indicate a rate-limiting back off time. @@ -13975,7 +21275,7 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets whether system is booted and ready for login. @@ -13985,7 +21285,7 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets system version and config settings once logged in. @@ -13995,7 +21295,7 @@ components: properties: UserName: type: string - description: Specifies a specific user name to retrieve tasks for (Optional, but only Admin users can retrieve tasks for other users or internal system tasks). + description: 'Specifies a specific user name to retrieve tasks for (Optional, but only Admin users can retrieve tasks for other users or internal system tasks).' StartDateTimeUtc: type: string description: Specifies the start time (in UTC) for a task to be retrieved (Optional). @@ -14026,17 +21326,17 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Retrieves a list of background, potentially long-running, tasks the hub has performed and their associated status. + description: 'Retrieves a list of background, potentially long-running, tasks the hub has performed and their associated status.' EventsOnIncomingQueue: title: EventsOnIncomingQueue type: object properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets the number of events currently in the processing queue. @@ -14046,20 +21346,20 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Returns the number of internal event notification messages received, processed or failed. + description: 'Returns the number of internal event notification messages received, processed or failed.' GetPipelineStatus: title: GetPipelineStatus type: object properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Gets the pipeline status, returning a dictionary of pipeline components and their current status. + description: 'Gets the pipeline status, returning a dictionary of pipeline components and their current status.' GetPipelineMetrics: title: GetPipelineMetrics type: object @@ -14076,7 +21376,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets system performance metrics. @@ -14086,7 +21386,7 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Returns the pipeline workload. @@ -14096,7 +21396,7 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Returns the cache statistics. @@ -14110,7 +21410,7 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Report Service @@ -14126,7 +21426,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Report Service @@ -14138,7 +21438,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Report Service @@ -14163,7 +21463,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Report Service @@ -14183,7 +21483,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Report Service @@ -14203,16 +21503,16 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Report Service DeleteCustomReportTemplate: title: DeleteCustomReportTemplate required: - - ReportTemplateType - - TemplateName - - TemplateVersion + - ReportTemplateType + - TemplateName + - TemplateVersion type: object properties: ReportTemplateType: @@ -14226,14 +21526,14 @@ components: description: Gets or sets the version of the report template to delete. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Deletes a report layout template of the specified type and name DataSpecDeviceMonitoringReport: title: DataSpecDeviceMonitoringReport required: - - DateRange + - DateRange type: object properties: ExcludeEvents: @@ -14268,7 +21568,7 @@ components: type: array items: type: string - description: Used to specify the list of items to report on, for data query specifications that support this. If this is not supplied, SelectionQuery can be used to specify a query to be performed to find the list of ids to report on + description: 'Used to specify the list of items to report on, for data query specifications that support this. If this is not supplied, SelectionQuery can be used to specify a query to be performed to find the list of ids to report on' SelectionQuery: $ref: '#/components/schemas/SelectionQuery' Groups: @@ -14278,10 +21578,10 @@ components: description: Specifies the Groups (and implicitly and child groups) to be reported on in the report. ItemName: type: string - description: Specifies the descriptive name of the result item, for example 'report', 'planned change', 'event' etc. + description: 'Specifies the descriptive name of the result item, for example ''report'', ''planned change'', ''event'' etc.' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to gets the data for a device monitoring report @@ -14331,15 +21631,15 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: GetRuleResults GetComplianceReportSummaryData: title: GetComplianceReportSummaryData required: - - ReportItemId - - ReportInstanceId + - ReportItemId + - ReportInstanceId type: object properties: ReportItemId: @@ -14353,7 +21653,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: GetComplianceReportSummaryData @@ -14391,14 +21691,14 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Stats Service GetComplianceData: title: GetComplianceData required: - - ReportItemId + - ReportItemId type: object properties: DeviceFilter: @@ -14459,10 +21759,10 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Get report summaries by report, for either individual devices, or as group average. + description: 'Get report summaries by report, for either individual devices, or as group average.' GetAvailableComplianceData: title: GetAvailableComplianceData type: object @@ -14480,7 +21780,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Get a list of groups or devices that have report data available for them @@ -14502,7 +21802,7 @@ components: $ref: '#/components/schemas/DeviceFilter' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets a list of inactive devices matching the filter. @@ -14577,10 +21877,10 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Gets a summary of event counts for the devices or groups specified by the DeviceFilter, for the specified time period. + description: 'Gets a summary of event counts for the devices or groups specified by the DeviceFilter, for the specified time period.' GetNoisyDevices: title: GetNoisyDevices type: object @@ -14589,11 +21889,11 @@ components: type: integer format: int32 x-nullable: false - description: Gets a summary of event counts for top N noisiest devices in the specified group, for the specified time period. + description: 'Gets a summary of event counts for top N noisiest devices in the specified group, for the specified time period.' ExecuteReport: title: ExecuteReport required: - - ReportItemId + - ReportItemId type: object properties: ReportItemId: @@ -14601,7 +21901,7 @@ components: description: Specifies the scheduled report item id. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Report Service @@ -14619,14 +21919,14 @@ components: description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. RuleSetResultEventId: type: string - description: For compliance reports only, if the InstanceId and ReportItemId are not available, the id of a previously stored RuleSetResultEvent can be supplied in this parameter. + description: 'For compliance reports only, if the InstanceId and ReportItemId are not available, the id of a previously stored RuleSetResultEvent can be supplied in this parameter.' Format: type: string RenderingOptions: $ref: '#/components/schemas/RenderingOptionOverrides' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Report Service @@ -14737,8 +22037,8 @@ components: RenderReport: title: RenderReport required: - - ReportItemId - - InstanceId + - ReportItemId + - InstanceId type: object properties: RendererType: @@ -14758,18 +22058,18 @@ components: x-nullable: false RuleSetResultEventId: type: string - description: For compliance reports only, if the InstanceId and ReportItemId are not available, the id of a previously stored RuleSetResultEvent can be supplied in this parameter. + description: 'For compliance reports only, if the InstanceId and ReportItemId are not available, the id of a previously stored RuleSetResultEvent can be supplied in this parameter.' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Report Service RenderReportStart: title: RenderReportStart required: - - ReportItemId - - InstanceId + - ReportItemId + - InstanceId type: object properties: RendererType: @@ -14786,10 +22086,10 @@ components: $ref: '#/components/schemas/RenderingOptionOverrides' RuleSetResultEventId: type: string - description: For compliance reports only, if the InstanceId and ReportItemId are not available, the id of a previously stored RuleSetResultEvent can be supplied in this parameter. + description: 'For compliance reports only, if the InstanceId and ReportItemId are not available, the id of a previously stored RuleSetResultEvent can be supplied in this parameter.' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Report Service @@ -14804,7 +22104,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets a previously generated report output file @@ -14818,15 +22118,15 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Deletes previously generated report output files DeleteScheduledInstance: title: DeleteScheduledInstance required: - - ReportItemId - - InstanceId + - ReportItemId + - InstanceId type: object properties: ReportItemId: @@ -14837,15 +22137,15 @@ components: description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Report Service UpdateScheduledInstanceLifetime: title: UpdateScheduledInstanceLifetime required: - - ReportItemId - - InstanceId + - ReportItemId + - InstanceId type: object properties: ReportItemId: @@ -14860,7 +22160,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Report Service @@ -14873,26 +22173,26 @@ components: description: Specifies the scheduled report item id. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Report Service AddScheduledReport: title: AddScheduledReport required: - - Id + - Id type: object properties: Id: type: string - description: The id of the type of report to add, from the list supplied by GetAvailableReportTypes + description: 'The id of the type of report to add, from the list supplied by GetAvailableReportTypes' IsPublic: type: boolean description: Indicates whether the report/query can be seen by everyone x-nullable: false IsEditable: type: boolean - description: Indicates whether the report/query can be edited/deleted by everyone. Note, if this is true, IsPublic must also be true + description: 'Indicates whether the report/query can be edited/deleted by everyone. Note, if this is true, IsPublic must also be true' x-nullable: false IsHidden: type: boolean @@ -14903,7 +22203,7 @@ components: description: Specifies as a copy of an existing the report/query with this Id Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Adds a new schedulable report of the type specified by the Id parameter @@ -14925,17 +22225,17 @@ components: description: Specifies the updated definition of the sub reports. KeepUnscheduledResultsForMinutes: type: integer - description: Specifies how long to keep 'adhoc' (ie non-scheduled) report results for, in minutes. + description: 'Specifies how long to keep ''adhoc'' (ie non-scheduled) report results for, in minutes.' format: int32 x-nullable: false KeepScheduledResultsForMinutes: type: integer - description: Specifies how long to keep scheduled report results for, in minutes. + description: 'Specifies how long to keep scheduled report results for, in minutes.' format: int32 x-nullable: false WaitForAdhocResultsMinutes: type: integer - description: Specifies long to wait for a run's queries to complete, in minutes. + description: 'Specifies long to wait for a run''s queries to complete, in minutes.' format: int32 x-nullable: false OverrideWaitForResults: @@ -14960,7 +22260,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Report Service @@ -15001,7 +22301,7 @@ components: type: array items: type: string - description: Used to specify the list of items to report on, for data query specifications that support this. If this is not supplied, SelectionQuery can be used to specify a query to be performed to find the list of ids to report on + description: 'Used to specify the list of items to report on, for data query specifications that support this. If this is not supplied, SelectionQuery can be used to specify a query to be performed to find the list of ids to report on' SelectionQuery: $ref: '#/components/schemas/SelectionQuery' Groups: @@ -15011,10 +22311,10 @@ components: description: Specifies the Groups (and implicitly and child groups) to be reported on in the report. ItemName: type: string - description: Specifies the descriptive name of the result item, for example 'report', 'planned change', 'event' etc. + description: 'Specifies the descriptive name of the result item, for example ''report'', ''planned change'', ''event'' etc.' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: The base class common to all report data query specifications @@ -15135,15 +22435,15 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Report Service GetScheduledInstances: title: GetScheduledInstances required: - - ReportItemId - - InstanceId + - ReportItemId + - InstanceId type: object properties: SummaryOnly: @@ -15158,7 +22458,7 @@ components: description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Report Service @@ -15168,7 +22468,7 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Upload an Agent Update @@ -15198,7 +22498,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Update the HUbDetails.xml file for the specified agents / groups @@ -15208,13 +22508,13 @@ components: properties: VersionRequested: type: string - description: Used when requesting an update file from the hub, specifies the specific version required. + description: 'Used when requesting an update file from the hub, specifies the specific version required.' UpdateType: type: string - description: Specifies the update type to download (e,g RPM, DEB etc). + description: 'Specifies the update type to download (e,g RPM, DEB etc).' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Download an update package for the agent. @@ -15227,7 +22527,7 @@ components: description: Specifies the agent update ID to delete. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Deletes the specified Agent update. @@ -15243,13 +22543,13 @@ components: description: Specifies the specific agent update ID to get. UpdateType: type: string - description: Gets or sets the update type (deb, rpm etc) + description: 'Gets or sets the update type (deb, rpm etc)' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Gets a list of Agent updates, by version or specific ID. + description: 'Gets a list of Agent updates, by version or specific ID.' GetAgentSoftwareUpdateScheduleForGroup: title: GetAgentSoftwareUpdateScheduleForGroup type: object @@ -15259,7 +22559,7 @@ components: description: Specifies the group name to remove the schedule for. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets the agent software update schedule for a group. @@ -15272,7 +22572,7 @@ components: description: Specifies the group name to remove the schedule for. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Remove (delete) the agent software update schedule for a group. @@ -15287,7 +22587,7 @@ components: $ref: '#/components/schemas/GroupAgentUpdateSchedule' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Update the agent software update schedule for a group. @@ -15333,7 +22633,7 @@ components: $ref: '#/components/schemas/GroupAgentUpdateSchedule' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Add (set) an agent update schedule for a specific group. Only one schedule is permitted per group at the current time. @@ -15365,15 +22665,15 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Retrieves a list of SyncService configuration items. AddSyncServiceConfigItem: title: AddSyncServiceConfigItem required: - - Key - - Value + - Key + - Value type: object properties: Key: @@ -15388,15 +22688,15 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Adds a new SyncService configuration item. UpdateSyncServiceConfigItem: title: UpdateSyncServiceConfigItem required: - - Key - - Value + - Key + - Value type: object properties: Key: @@ -15411,14 +22711,14 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Updates an existing SyncService configuration item. DeleteSyncServiceConfigItem: title: DeleteSyncServiceConfigItem required: - - Key + - Key type: object properties: Key: @@ -15426,7 +22726,7 @@ components: description: The configuration key Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Deletes a SyncService configuration item. @@ -15447,7 +22747,7 @@ components: description: Specifies a list of specific configuration parameter 'Keys' to retrieved (Optional). IncludeHidden: type: boolean - description: Include hidden, 'system', parameters. + description: 'Include hidden, ''system'', parameters.' x-nullable: false CountOnly: type: boolean @@ -15473,7 +22773,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Retrieves a list of hub configuration parameters. @@ -15485,7 +22785,7 @@ components: $ref: '#/components/schemas/Dictionary_String_String_' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Add a list of hub configuration parameters. @@ -15500,7 +22800,7 @@ components: description: A list of config items to update. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Update a a list of hub configuration parameters. @@ -15522,7 +22822,7 @@ components: description: A boolean indicating whether or not to hide this config item from the UI. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Update a single hub configuration parameter by either ID or Key. @@ -15538,7 +22838,7 @@ components: description: 'Specifies the config item key to remove. Note : will remove all instances of config items with the same key.' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Remove a hub configuration parameter by either ID or Key. @@ -15558,7 +22858,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Add a hub configuration parameter by Key. @@ -15573,7 +22873,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Echos the specified date/time value to ensure that no serialization issues exist between hub and client. @@ -15585,7 +22885,7 @@ components: $ref: '#/components/schemas/Credentials' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Add credentials for specified type and key. @@ -15640,7 +22940,7 @@ components: type: string DiscoveryTaskStatus: type: string - description: Represents some credentials used to connect to a remote service (e.g SSH, database etc). + description: 'Represents some credentials used to connect to a remote service (e.g SSH, database etc).' UpdateCredentials: title: UpdateCredentials type: object @@ -15655,7 +22955,7 @@ components: $ref: '#/components/schemas/Credentials' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Update credentials for specified type and key. @@ -15671,7 +22971,7 @@ components: description: Specifies the key. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Remove credentials for specified type and key. @@ -15681,10 +22981,10 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Get a list of all the known credentials, keyed by the type. + description: 'Get a list of all the known credentials, keyed by the type.' GetCredentialsList: title: GetCredentialsList type: object @@ -15696,7 +22996,7 @@ components: $ref: '#/components/schemas/DeviceFilter' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets a list of all credentials of the specified type. @@ -15717,10 +23017,10 @@ components: format: int32 Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Requests information about the given tasks' status. If a PolicyRunId is supplied, the tasks associated with it are returned. + description: 'Requests information about the given tasks'' status. If a PolicyRunId is supplied, the tasks associated with it are returned.' SubmitAgentTasks: title: SubmitAgentTasks type: object @@ -15732,7 +23032,7 @@ components: description: Specifies the list of tasks that will be submitted. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Adds a list of tasks for the given agent. @@ -15779,10 +23079,10 @@ components: x-nullable: false Status: type: string - description: Specifies the status, 'in progress', 'complete' etc. See 'AgentTaskStatus'. + description: 'Specifies the status, ''in progress'', ''complete'' etc. See ''AgentTaskStatus''.' StatusMessage: type: string - description: Specifies the additional status message, if any. + description: 'Specifies the additional status message, if any.' StatusUpdatedUtc: type: string description: Specifies the utc time the status of the task was updated. @@ -15833,19 +23133,19 @@ components: x-nullable: false HostType: type: string - description: Specifies the host type the file hash binary is required for (e.g Unix, Windows etc) + description: 'Specifies the host type the file hash binary is required for (e.g Unix, Windows etc)' OperatingSystem: type: string description: Specifies the operating system naame (as defined in KnownOsNames). Optional Variant: type: string - description: Specifies the operating system / host variant. e.g x64, 10 SPARC etc + description: 'Specifies the operating system / host variant. e.g x64, 10 SPARC etc' FileId: type: string description: Specifies the specific file id Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Download the filehasing utility app for remote monitoring. @@ -15855,14 +23155,14 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Retrieves the list of file hash binaries available to download from the hub. GetPlannedChangeInstanceMembers: title: GetPlannedChangeInstanceMembers required: - - InstanceId + - InstanceId type: object properties: InstanceId: @@ -15870,14 +23170,14 @@ components: description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets the group and device members of the specified planned change instance. DeletePlannedChangeInstance: title: DeletePlannedChangeInstance required: - - InstanceId + - InstanceId type: object properties: InstanceId: @@ -15889,14 +23189,14 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Deletes an instance of a planned change from the system. DeletePlannedChangeInstanceMember: title: DeletePlannedChangeInstanceMember required: - - InstanceId + - InstanceId type: object properties: GroupName: @@ -15910,7 +23210,7 @@ components: description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Removes a group or device from a planned change @@ -15920,7 +23220,7 @@ components: properties: PlannedChangeName: type: string - description: Specifies the planned change definition name. Optional, if not supplied a new empty planned change ruleset is created and returned in the response. + description: 'Specifies the planned change definition name. Optional, if not supplied a new empty planned change ruleset is created and returned in the response.' DisplayName: type: string description: Specifies the DisplayName. Required. @@ -15932,7 +23232,7 @@ components: description: Specifies the Assigned To Name. Origin: type: string - description: Specifies the origin of the planned change. Optional, this can be 'Interactive' for UI created, or the name of an ITSM instance when created by sync service. + description: 'Specifies the origin of the planned change. Optional, this can be ''Interactive'' for UI created, or the name of an ITSM instance when created by sync service.' MemberGroups: type: array items: @@ -15973,7 +23273,7 @@ components: x-nullable: false DisallowRules: type: boolean - description: Specifies a value indicating whether the planned change is allowed to have rules, or is a just container for manually added events. + description: 'Specifies a value indicating whether the planned change is allowed to have rules, or is a just container for manually added events.' x-nullable: false UseAttributeRules: type: boolean @@ -15981,14 +23281,14 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Add a planned change instance. UpdatePlannedChangeInstance: title: UpdatePlannedChangeInstance required: - - InstanceId + - InstanceId type: object properties: InstanceId: @@ -16027,7 +23327,7 @@ components: description: Specifies a value indicating whether the planned change instance is disabled. Optional. DisallowRules: type: boolean - description: Specifies a value indicating whether the planned change is allowed to have rules, or is a just container for manually added events. Optional. + description: 'Specifies a value indicating whether the planned change is allowed to have rules, or is a just container for manually added events. Optional.' PeriodicityCount: type: integer description: Specifies a value indicating the periodicity of the planned change. When PeriodicityCount is greater then zero the planned change is active every PeriodicityCount PeriodicityUnits for PeriodDurationCount PeriodDurationUnits starting from StartTimeUtc. @@ -16052,14 +23352,14 @@ components: description: Specifies the devices that are explicit members of the planned change. Optional. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Update a planned change instance ClonePlannedChangeInstance: title: ClonePlannedChangeInstance required: - - InstanceId + - InstanceId type: object properties: InstanceId: @@ -16071,7 +23371,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Clone a planned change instance. @@ -16108,11 +23408,11 @@ components: description: Specifies the planned change instance name fragment to find. Optional. ExcludeDisabled: type: boolean - description: Specifies a value indicating whether to exclude disabled instances from the list. Optional, defaults to false. + description: 'Specifies a value indicating whether to exclude disabled instances from the list. Optional, defaults to false.' x-nullable: false ExcludeOutOfSchedule: type: boolean - description: Specifies a value indicating whether to exclude instances whose schedule is not currently active from the list. Optional, defaults to false. + description: 'Specifies a value indicating whether to exclude instances whose schedule is not currently active from the list. Optional, defaults to false.' x-nullable: false DisallowRules: type: boolean @@ -16149,14 +23449,14 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Gets planned change instances name and id, filtering by name, id or groups that are members. + description: 'Gets planned change instances name and id, filtering by name, id or groups that are members.' AddPlannedChangeInstanceMember: title: AddPlannedChangeInstanceMember required: - - InstanceId + - InstanceId type: object properties: MemberGroups: @@ -16174,14 +23474,14 @@ components: description: Specifies the id for a specific ScheduledInstance of a ScheduledReportItem report. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Add a list of groups to a planned change AddOrUpdatePlannedChangeInstanceFromEvents: title: AddOrUpdatePlannedChangeInstanceFromEvents required: - - InstanceId + - InstanceId type: object properties: AllEventsSelected: @@ -16233,10 +23533,10 @@ components: format: date-time Origin: type: string - description: Specifies the origin of the planned change. Optional, this can be 'Interactive' for UI created, or the name of an ITSM instance when creates by sync service. + description: 'Specifies the origin of the planned change. Optional, this can be ''Interactive'' for UI created, or the name of an ITSM instance when creates by sync service.' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to add a new planned change and planned change instance based on the given events. @@ -16289,7 +23589,7 @@ components: AddReEvaluationOfPlannedChangeInstanceEvents: title: AddReEvaluationOfPlannedChangeInstanceEvents required: - - InstanceId + - InstanceId type: object properties: InstanceId: @@ -16308,7 +23608,7 @@ components: description: Indicates whether to further restrict the event query to events that were either added to the planned change manually or not (i.e. were added by a rule) Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to re-evaluate the events associated with the specified planned change. @@ -16345,18 +23645,18 @@ components: description: Specifies the planned change instance name fragment to find. Optional. ExcludeDisabled: type: boolean - description: Specifies a value indicating whether to exclude disabled instances from the list. Optional, defaults to false. + description: 'Specifies a value indicating whether to exclude disabled instances from the list. Optional, defaults to false.' x-nullable: false ExcludeOutOfSchedule: type: boolean - description: Specifies a value indicating whether to exclude instances whose schedule is not currently active from the list. Optional, defaults to false. + description: 'Specifies a value indicating whether to exclude instances whose schedule is not currently active from the list. Optional, defaults to false.' x-nullable: false DisallowRules: type: boolean description: Specifies an optional value indicating whether the planned change instances returned are allowed to have rules. OmitPlannedChangeDefinitions: type: boolean - description: Specifies an optional value indicating whether to omit returning the PlannedChangeDefinition on the returned PlannedChangeInstance, useful if you only want a list of instances without the potentially large definitions embedded. + description: 'Specifies an optional value indicating whether to omit returning the PlannedChangeDefinition on the returned PlannedChangeInstance, useful if you only want a list of instances without the potentially large definitions embedded.' x-nullable: false OmitExceptKeyValue: type: boolean @@ -16393,17 +23693,17 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Gets planned change instances, filtering by name, id or groups that are members. + description: 'Gets planned change instances, filtering by name, id or groups that are members.' AddPlannedChange: title: AddPlannedChange type: object properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false Name: @@ -16417,7 +23717,7 @@ components: description: Specifies the description text. Origin: type: string - description: Specifies the origin of the planned change ruleset. Optional, this can be 'Interactive' for UI created, or the name of an ITSM instance when creates by sync service. + description: 'Specifies the origin of the planned change ruleset. Optional, this can be ''Interactive'' for UI created, or the name of an ITSM instance when creates by sync service.' CreationDateUtc: type: string description: Specifies the UTC creation date of the planned change. @@ -16430,7 +23730,7 @@ components: x-nullable: false DisallowRules: type: boolean - description: Specifies a value indicating whether the planned change is allowed to have rules, or is a just container for manually added events. + description: 'Specifies a value indicating whether the planned change is allowed to have rules, or is a just container for manually added events.' x-nullable: false Rules: $ref: '#/components/schemas/Dictionary_String_PlannedChangeRule_' @@ -16483,7 +23783,7 @@ components: description: Gets the description. ListFilterAttribute: type: string - description: When the RuleType is ListFilter, specifies the name of the attribute used as the source for comparison with the List + description: 'When the RuleType is ListFilter, specifies the name of the attribute used as the source for comparison with the List' ListFilterSeparator: type: string description: Gets or sets the list filter separators. @@ -16491,14 +23791,14 @@ components: type: array items: type: string - description: When the RuleType is a ListFilter, specifies the list of List Filter Attribute values used as the source for comparison when the rule is evaluated. + description: 'When the RuleType is a ListFilter, specifies the list of List Filter Attribute values used as the source for comparison when the rule is evaluated.' description: Represents a rule specifying a requirement that an event be of a particular type. Dictionary_String_PlannedChangeRule_: - title: Dictionary + title: 'Dictionary' type: object additionalProperties: $ref: '#/components/schemas/PlannedChangeRule' - description: Dictionary + description: 'Dictionary' UploadPlannedChange: title: UploadPlannedChange type: object @@ -16509,7 +23809,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Upload a planned change ruleset json file @@ -16530,7 +23830,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Download a planned change ruleset json file @@ -16552,15 +23852,15 @@ components: description: Specifies the rule combination operator. If this is And it means an event must satisfy all the 'PlannedChangeDefinition.Rules'. DisallowRules: type: boolean - description: Specifies a value indicating whether the planned change is allowed to have rules, or is a just container for manually added events. + description: 'Specifies a value indicating whether the planned change is allowed to have rules, or is a just container for manually added events.' Rules: $ref: '#/components/schemas/Dictionary_String_PlannedChangeRule_' Origin: type: string - description: Specifies the origin of the planned change update. Optional, this can be 'Interactive' for UI created, or the name of an ITSM instance when updated by sync service. + description: 'Specifies the origin of the planned change update. Optional, this can be ''Interactive'' for UI created, or the name of an ITSM instance when updated by sync service.' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Update a planned change definition @@ -16573,7 +23873,7 @@ components: description: Specifies the internal Name identifying the planned change to clone. This cannot be updated. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Clone a planned change definition. @@ -16591,10 +23891,10 @@ components: description: Specifies the list of rule ids to be automatically reduced to the minimum set to catch at least the same events. For example two exact name matches of files in the same directory will be reduced to one rule that matches any file in the directory. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Create rule reduction plans, which can be used to simplify rulesets associated with the specified planned change. + description: 'Create rule reduction plans, which can be used to simplify rulesets associated with the specified planned change.' ApplyPlannedChangePlan: title: ApplyPlannedChangePlan type: object @@ -16611,10 +23911,10 @@ components: $ref: '#/components/schemas/RuleReductionPlan2' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Apply rule reduction plans to the specified planned change, simplifying the associated rulesets. + description: 'Apply rule reduction plans to the specified planned change, simplifying the associated rulesets.' RuleReductionPlan2: title: RuleReductionPlan2 type: object @@ -16640,7 +23940,7 @@ components: $ref: '#/components/schemas/PlannedChangeRule' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Updates a rule in a planned change @@ -16655,7 +23955,7 @@ components: $ref: '#/components/schemas/Dictionary_String_PlannedChangeRule_' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Updates the entire rule set in a planned change @@ -16671,7 +23971,7 @@ components: description: Specifies the rule id. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Removes a rule from a planned change @@ -16684,7 +23984,7 @@ components: description: Specifies the planned change ruleset definition name to remove. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Delete a planned change ruleset definition from the system. @@ -16699,7 +23999,7 @@ components: $ref: '#/components/schemas/PlannedChangeRule' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Add a rule to a planned change @@ -16743,10 +24043,10 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Gets a list of planned change ruleset definitions, filtered by name or id. + description: 'Gets a list of planned change ruleset definitions, filtered by name or id.' ParseCommands: title: ParseCommands type: object @@ -16767,10 +24067,10 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Attempts to parse the supplied commandline, returning a list of disallowed command fragments on failure. + description: 'Attempts to parse the supplied commandline, returning a list of disallowed command fragments on failure.' CreateWhitelistedCommandComponent: title: CreateWhitelistedCommandComponent type: object @@ -16788,7 +24088,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Attempts to whitelist the supplied command component. @@ -16804,7 +24104,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets the whitelisted command component. @@ -16857,7 +24157,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Attempts to get all the whitelisted command components. @@ -16879,7 +24179,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Attempts to update the supplied command component by id. @@ -16896,7 +24196,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Attempts to bulk update the whitelisted command component with the supplied ids. @@ -16916,7 +24216,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Adds the given template(s) to a command component. @@ -16932,7 +24232,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Attempts to remove the given template(s) from a command component. @@ -16966,7 +24266,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets all templates of a command component. @@ -17000,7 +24300,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets all templates of multiple command components. @@ -17016,10 +24316,10 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Attempts to set the given template(s) to a command component, clearing old templates if they exist. + description: 'Attempts to set the given template(s) to a command component, clearing old templates if they exist.' GetCloudTemplateCreationStatus: title: GetCloudTemplateCreationStatus type: object @@ -17036,7 +24336,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Provide a ProspectiveName for the Cloud System or a ReportSpecId to identify the associated cloud report but never both. Gets the state of progress in the creation of a new cloud report policy. For example it may be only partially configured and require the addition of credentials before it can be run. @@ -17049,7 +24349,7 @@ components: description: Specifies the policy template name Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Ensures that the specified baseline template has the required source and members groups and related scheduled compliance report configured. @@ -17062,7 +24362,7 @@ components: description: Specifies the policy template name to query Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets the state of progress in the creation of a new policy. For example it may be only partially configured and require the addition of rules before it can be applied to devices. @@ -17076,13 +24376,13 @@ components: type: array items: type: string - description: Specifies the policy usages type to store on the Template e.g. Baseline, Tracking etc... + description: 'Specifies the policy usages type to store on the Template e.g. Baseline, Tracking etc...' ChangeComment: type: string description: Specifies a short description of the change for auditing purposes. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Adds a device config template. @@ -17474,7 +24774,7 @@ components: $ref: '#/components/schemas/AgentTracker' NotificationRefId: type: string - description: Specifies a value indicating the default NotificationRefId for the template, used for future trackers + description: 'Specifies a value indicating the default NotificationRefId for the template, used for future trackers' description: The device tracker configuration applied to a device via a Device Template FilePathMatch: title: FilePathMatch @@ -17500,7 +24800,7 @@ components: description: Gets or sets the file match expression. RecursionLevel: type: integer - description: Specifies the level of recursion into subfolders. Zero means none, ie tracking this folder only, one means one level down etc. + description: 'Specifies the level of recursion into subfolders. Zero means none, ie tracking this folder only, one means one level down etc.' format: int32 x-nullable: false SkipRootFolder: @@ -17509,7 +24809,7 @@ components: x-nullable: false IsSystem: type: boolean - description: Specifies a value indicating whether this is a system item, or local to the template. + description: 'Specifies a value indicating whether this is a system item, or local to the template.' x-nullable: false description: The file path match represents the path match specifications for a file. RegistryPathMatch: @@ -17545,7 +24845,7 @@ components: x-nullable: false IsSystem: type: boolean - description: Specifies a value indicating whether this is a system item, or local to the template. + description: 'Specifies a value indicating whether this is a system item, or local to the template.' x-nullable: false description: The registry path match represents the path match specifications for a registry key and values. RegistryTrackerChangesFilter: @@ -17576,7 +24876,7 @@ components: x-nullable: false IsSystem: type: boolean - description: Specifies a value indicating whether this is a system item, or local to the template. + description: 'Specifies a value indicating whether this is a system item, or local to the template.' x-nullable: false description: The registry tracker changes filter represents the types of changes to registry keys and values to be monitored. FileTrackerChangesFilter: @@ -17627,7 +24927,7 @@ components: x-nullable: false Attributes: type: boolean - description: Specifies a value indicating whether to report changes to file attributes (readonly, archive, hidden etc). + description: 'Specifies a value indicating whether to report changes to file attributes (readonly, archive, hidden etc).' x-nullable: false Security: type: boolean @@ -17639,7 +24939,7 @@ components: x-nullable: false IsSystem: type: boolean - description: Specifies a value indicating whether this is a system item, or local to the template. + description: 'Specifies a value indicating whether this is a system item, or local to the template.' x-nullable: false All: type: boolean @@ -17701,7 +25001,7 @@ components: $ref: '#/components/schemas/IEqualityComparer_FolderDetail_' FilterName: type: string - description: Specifies the filter name. If this is set and 'FileTrackerChangesFilter' is not set, the FilterName is assumed to be a reference to a system defined match. If FileTrackerChangesFilter is set and FilterName not set, the FileTrackerChangesFilter is assumed to be specific to this FolderDetail and will be stored with a system created unique name. + description: 'Specifies the filter name. If this is set and ''FileTrackerChangesFilter'' is not set, the FilterName is assumed to be a reference to a system defined match. If FileTrackerChangesFilter is set and FilterName not set, the FileTrackerChangesFilter is assumed to be specific to this FolderDetail and will be stored with a system created unique name.' Hashing: type: string description: Gets or sets the hashing. @@ -17713,7 +25013,7 @@ components: description: ' Gets or sets the full pathname of the file.' PathMatchName: type: string - description: Specifies the path match name. If this is set and 'FilePathMatch' is not set, the PathMatchName is assumed to be a reference to a system defined match. If FilePathMatch is set and PathMatchName not set, the FilePathMatch is assumed to be specific to this FolderDetail and will be stored with a system created unique name. + description: 'Specifies the path match name. If this is set and ''FilePathMatch'' is not set, the PathMatchName is assumed to be a reference to a system defined match. If FilePathMatch is set and PathMatchName not set, the FilePathMatch is assumed to be specific to this FolderDetail and will be stored with a system created unique name.' FilePathMatch: $ref: '#/components/schemas/FilePathMatch' IsSystemDefinedPathMatch: @@ -17745,7 +25045,7 @@ components: description: 'Gets or sets the full pathname of the file. ' PathMatchName: type: string - description: Specifiesthe path match name. If this is set and 'FilePathMatch' is not set, the PathMatchName is assumed to be a reference to a system defined match. If FilePathMatch is set and PathMatchName not set, the FilePathMatch is assumed to be specific to this FolderDetail and will be stored with a system created unique name. + description: 'Specifiesthe path match name. If this is set and ''FilePathMatch'' is not set, the PathMatchName is assumed to be a reference to a system defined match. If FilePathMatch is set and PathMatchName not set, the FilePathMatch is assumed to be specific to this FolderDetail and will be stored with a system created unique name.' FilePathMatch: $ref: '#/components/schemas/FilePathMatch' IsSystemDefinedPathMatch: @@ -17928,13 +25228,13 @@ components: $ref: '#/components/schemas/IEqualityComparer_RegKeyDetail_' FilterName: type: string - description: Specifies the filter name. If this is set and 'FileTrackerChangesFilter' is not set, the FilterName is assumed to be a reference to a system defined match. If FileTrackerChangesFilter is set and FilterName not set, the FileTrackerChangesFilter is assumed to be specific to this FolderDetail and will be stored with a system created unique name. + description: 'Specifies the filter name. If this is set and ''FileTrackerChangesFilter'' is not set, the FilterName is assumed to be a reference to a system defined match. If FileTrackerChangesFilter is set and FilterName not set, the FileTrackerChangesFilter is assumed to be specific to this FolderDetail and will be stored with a system created unique name.' Path: type: string description: Gets or sets the path. PathMatchName: type: string - description: Specifies the path match name. If this is set and 'RegistryPathMatch' is not set, the PathMatchName is assumed to be a reference to a system defined match. If RegistryPathMatch is set and PathMatchName not set, the RegistryPathMatch is assumed to be specific to this RegKeyDetail and will be stored with a system created unique name. + description: 'Specifies the path match name. If this is set and ''RegistryPathMatch'' is not set, the PathMatchName is assumed to be a reference to a system defined match. If RegistryPathMatch is set and PathMatchName not set, the RegistryPathMatch is assumed to be specific to this RegKeyDetail and will be stored with a system created unique name.' RegistryPathMatch: $ref: '#/components/schemas/RegistryPathMatch' IsSystemDefinedPathMatch: @@ -17966,7 +25266,7 @@ components: description: Gets or sets the path. PathMatchName: type: string - description: Specifies the path match name. If this is set and 'RegistryPathMatch' is not set, the PathMatchName is assumed to be a reference to a system defined match. If RegistryPathMatch is set and PathMatchName not set, the RegistryPathMatch is assumed to be specific to this RegKeyExclude and will be stored with a system created unique name. + description: 'Specifies the path match name. If this is set and ''RegistryPathMatch'' is not set, the PathMatchName is assumed to be a reference to a system defined match. If RegistryPathMatch is set and PathMatchName not set, the RegistryPathMatch is assumed to be specific to this RegKeyExclude and will be stored with a system created unique name.' RegistryPathMatch: $ref: '#/components/schemas/RegistryPathMatch' IsSystemDefinedPathMatch: @@ -18136,7 +25436,7 @@ components: description: Gets or sets the command line. CommandLineScript: type: string - description: Gets or sets the multi-line command script, when CommandType is PowerShellScript. + description: 'Gets or sets the multi-line command script, when CommandType is PowerShellScript.' CommandType: type: string description: Gets or sets the type of the command. @@ -18200,7 +25500,7 @@ components: description: Specifies the path to the file to be tracked. Name: type: string - description: Specifies the name. Identifies the meaning of the file, e.g. 'web application configuration file', or where a 'RegularExpression' is specified this name can be used to identify the part of the file that is being extracted. E.g. 'Apache release version'. + description: 'Specifies the name. Identifies the meaning of the file, e.g. ''web application configuration file'', or where a ''RegularExpression'' is specified this name can be used to identify the part of the file that is being extracted. E.g. ''Apache release version''.' NotificationRefId: type: array items: @@ -18435,7 +25735,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets the most recent policy run results for each matching policy in the time range. @@ -18463,7 +25763,7 @@ components: $ref: '#/components/schemas/ProposedPolicyChange' StartUtc: type: string - description: Gets or sets the start of the period to return events for, null implies all. + description: 'Gets or sets the start of the period to return events for, null implies all.' format: date-time ApplyProcessPortRange: type: boolean @@ -18475,7 +25775,7 @@ components: description: Specifies any Rule Builder Options. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Add a rules to a baseline policy based on events @@ -18504,7 +25804,7 @@ components: x-nullable: false PortProcEphemeralRange: type: boolean - description: Specifies if true, that only ports in the ephemeral range opened by known processes are allowed + description: 'Specifies if true, that only ports in the ephemeral range opened by known processes are allowed' x-nullable: false NoOthersRuleTrackerName: type: string @@ -18594,7 +25894,7 @@ components: description: Specifies as a copy of an existing template named this CopyTemplateValues: type: boolean - description: Specifies a copy of an existing template should only copy the tracking information, not the values + description: 'Specifies a copy of an existing template should only copy the tracking information, not the values' x-nullable: false AsCopyOfVersion: type: string @@ -18604,7 +25904,7 @@ components: items: type: string x-nullable: false - description: Specifies extra UsageTagsApplicable to record against the template, in addition to those specified in the Xml + description: 'Specifies extra UsageTagsApplicable to record against the template, in addition to those specified in the Xml' OverwriteIfExists: type: boolean description: Specifies a flag to indicate whether or not not overwrite the report / config if it already exists @@ -18622,7 +25922,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Adds a device policy template to the system. The specified template should be supplied as Xml. @@ -18635,10 +25935,10 @@ components: description: Specifies the policy template name to delete TemplateVersion: type: string - description: Specifies the policy template version to delete. Optional, if not supplied all versions of the template are removed. + description: 'Specifies the policy template version to delete. Optional, if not supplied all versions of the template are removed.' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Deletes a device policy template from the system. The specified template can be either config or a compliance report template. @@ -18660,7 +25960,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Upload a policy template file @@ -18676,7 +25976,7 @@ components: description: Specifies the agent device id to get the current combined template for. Note either this or the 'Name' should be specified. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Returns a policy template as an xml file in the Http Response stream. @@ -18688,7 +25988,7 @@ components: $ref: '#/components/schemas/AgentDevice' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Get the list of running processes from a specified agent / device.Used to enable 'white-listing' if existing processes from a running agent when building device config. @@ -18706,7 +26006,7 @@ components: description: Specifies the tracker to be started Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Ask an agent to start a specified tracker. @@ -18718,7 +26018,7 @@ components: $ref: '#/components/schemas/AgentDevice' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Get the list of running Services from a specified agent/device. Used to enable 'white - listing' if existing Service from a running agent when building device config. @@ -18734,7 +26034,7 @@ components: description: Specifies the version of the template to make active. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Sets a specific version of a named policy template as the active one. @@ -18805,7 +26105,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Update matching config templates. @@ -18822,7 +26122,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets a named device config template. @@ -18839,13 +26139,13 @@ components: type: array items: type: string - description: Specifies the agent devices. Optional. If specified this filters the returned list of template names to include only those currently applied to ALL the listed devices due to their group memberships, i.e. an intersection of group membership sets. + description: 'Specifies the agent devices. Optional. If specified this filters the returned list of template names to include only those currently applied to ALL the listed devices due to their group memberships, i.e. an intersection of group membership sets.' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Gets a list of device tracking template names, optionally filtering by trackers contained (e.g. find templates with a process tracker). + description: 'Gets a list of device tracking template names, optionally filtering by trackers contained (e.g. find templates with a process tracker).' AddDeviceConfigProcessRules: title: AddDeviceConfigProcessRules type: object @@ -18860,7 +26160,7 @@ components: description: A list of all the Rules Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Adds white/grey/black listing to process rules in the specified device tracking configuration template. @@ -18903,7 +26203,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Get the configured config policy template for the specified group or by individual template name. @@ -18918,7 +26218,7 @@ components: description: Specifies the list of group names to get the config for Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Get the configured config policy template names for the specified groups. @@ -18928,7 +26228,7 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false VersionString: @@ -18961,7 +26261,7 @@ components: description: Specifies the policy template name to remove from the group. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Removes a config template from a group. @@ -18983,7 +26283,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Re-parents the given devices to the specified Agent. @@ -19004,7 +26304,7 @@ components: description: Specifies the timezone id to do the export in Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Export a list of agent details. @@ -19062,7 +26362,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to return agents matching the device filter. @@ -19100,7 +26400,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to return group members matching the criteria. @@ -19124,7 +26424,7 @@ components: type: array items: type: string - description: The groups of which the returned groups must be a member. If null, members of any group can be returned, if an empty list only groups which are members of no groups (i.e. have no parent) are returned. + description: 'The groups of which the returned groups must be a member. If null, members of any group can be returned, if an empty list only groups which are members of no groups (i.e. have no parent) are returned.' OnlyGroupsWithUpdate: type: boolean description: Gets or sets the a flag indicating whether to only return groups with an agent update scheduled. @@ -19153,7 +26453,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to return groups matching the criteria. @@ -19170,14 +26470,14 @@ components: description: Gets or sets the Group Matching Name. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Represents a request to delete a group matching the criteria. AddGroup: title: AddGroup required: - - GroupType + - GroupType type: object properties: ParentGroupName: @@ -19188,10 +26488,10 @@ components: description: Specifies the display name of the new group GroupType: enum: - - None - - UserContainer - - DeviceContainer - - GroupContainer + - None + - UserContainer + - DeviceContainer + - GroupContainer type: int description: Specifies the type of members allowed in the new group. Can be a combination of the allowed values format: int32 @@ -19209,14 +26509,14 @@ components: description: Specifies the risk score of the group. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Adds a new Group definition. UpdateGroup: title: UpdateGroup required: - - Name + - Name type: object properties: Name: @@ -19235,7 +26535,7 @@ components: description: Specifies the risk score of the group Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Updates a Group definition. @@ -19247,17 +26547,17 @@ components: type: array items: type: string - description: The agent device ids to delete from their current groups, moving them to the Deleted group. + description: 'The agent device ids to delete from their current groups, moving them to the Deleted group.' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Represents a request to delete devices matching the criteria. Note that when a device is deleted it is moved to the Deleted group and is no longer included in the licensed device count. GetOverdueDevices: title: GetOverdueDevices required: - - OfflineSeconds + - OfflineSeconds type: object properties: OfflineSeconds: @@ -19277,7 +26577,7 @@ components: description: Specifies optional list of groups the devices must not be a member of. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets devices that have not polled in for the specified amount of time. @@ -19299,10 +26599,10 @@ components: description: The response to a previously issued challenge for this request. Without this the call will return a challenge for which the response must be supplied on a subsequently call. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Delete the specified Agent from the system. On first call the system will issue a challenge which must be answered and the response supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code. + description: 'Delete the specified Agent from the system. On first call the system will issue a challenge which must be answered and the response supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code.' ReRegisterDevice: title: ReRegisterDevice type: object @@ -19314,7 +26614,7 @@ components: description: Specifies the list of combined agent and device ids. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Represents a request to re-register a list of previously deleted devices matching the criteria. @@ -19330,10 +26630,10 @@ components: description: The response to a previously issued challenge for this request. Without this the call will return a challenge for which the response must be supplied on a subsequently call. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Delete all the specified group members from the system. On first call the system will issue a challenge which must be answered and the response supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code. + description: 'Delete all the specified group members from the system. On first call the system will issue a challenge which must be answered and the response supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code.' AddDeviceFilter: title: AddDeviceFilter type: object @@ -19342,7 +26642,7 @@ components: $ref: '#/components/schemas/DeviceFilter' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Represents a request to add a DeviceFilter. @@ -19357,7 +26657,7 @@ components: $ref: '#/components/schemas/DeviceFilter' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Represents a request to update a DeviceFilter matching the given id. @@ -19369,10 +26669,10 @@ components: $ref: '#/components/schemas/DeviceFilter' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Represents a request to bring the named filter to the head of the list, or to create it at the head of the list if it doesn't exist. + description: 'Represents a request to bring the named filter to the head of the list, or to create it at the head of the list if it doesn''t exist.' DeleteDeviceFilter: title: DeleteDeviceFilter type: object @@ -19382,7 +26682,7 @@ components: description: Specifies the name of the device filter to delete. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Represents a request to delete a DeviceFilter matching the criteria. @@ -19420,7 +26720,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Returns a paged list of DeviceFilter definitions matching the optional name criteria. @@ -19448,7 +26748,7 @@ components: description: The AgentDeviceIds of agents to add to the parent. Used as an alternative to Agents property. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to add the specified Groups and Agents group members to the named group. @@ -19471,7 +26771,7 @@ components: description: The agent device ids to remove from the parent. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to remove group or device members from the named group. @@ -19487,7 +26787,7 @@ components: description: Specifies the id of the device. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets an indication of the device's online/offline status @@ -19509,10 +26809,10 @@ components: description: Specifies the group name. Either AgentId and DeviceId or GroupName must be supplied. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Gets the device settings for the device, based on the global device settings and any device specific overrides. + description: 'Gets the device settings for the device, based on the global device settings and any device specific overrides.' AddCredentialsToAgentDevice: title: AddCredentialsToAgentDevice type: object @@ -19524,7 +26824,7 @@ components: description: Specifies the credentials key. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to associate named credentials with an agent. @@ -19539,7 +26839,7 @@ components: description: Specifies the credential key. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to remove named credentials from an agent. @@ -19554,7 +26854,7 @@ components: description: Specifies the device name. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to update the display name of an agent. @@ -19577,7 +26877,7 @@ components: description: Specifies the agent device id whose credentials are to be tested. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Ask an agent to test the credentials for a device it is proxying. @@ -19587,7 +26887,7 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets details of ip addresses that have been blocked. @@ -19605,7 +26905,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Adds manual blocking of a specified ip address until a specified time. @@ -19618,7 +26918,7 @@ components: description: Gets or sets the ip address to remove blocking from. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Removes blocking of a specified ip address. @@ -19650,7 +26950,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Discovers devices to be added as proxied devices to a master device. @@ -19677,7 +26977,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Submits discovered devices as a response to a DiscoverDevices request. @@ -19727,18 +27027,18 @@ components: $ref: '#/components/schemas/EventFilter' StartUtc: type: string - description: Gets or sets the start of the period to return events for, null implies all. + description: 'Gets or sets the start of the period to return events for, null implies all.' format: date-time EndUtc: type: string - description: Gets or sets the end of the period to return events for, null implies up to current time. + description: 'Gets or sets the end of the period to return events for, null implies up to current time.' format: date-time TextSearch: type: string description: Gets or sets the text search value. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Acknowledge a list of events as 'planned'. @@ -19750,7 +27050,7 @@ components: $ref: '#/components/schemas/GetEvents' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: 'Re-submit the specified events (i.e for re-consideration by the pipeline re: planned changes).' @@ -19763,7 +27063,7 @@ components: description: Specifies the specific event id to retrieve history for. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Get the event history for one specific event. @@ -19786,11 +27086,11 @@ components: $ref: '#/components/schemas/EventFilter' StartUtc: type: string - description: Gets or sets the start of the period to return events for, null implies all. + description: 'Gets or sets the start of the period to return events for, null implies all.' format: date-time EndUtc: type: string - description: Gets or sets the end of the period to return events for, null implies up to current time. + description: 'Gets or sets the end of the period to return events for, null implies up to current time.' format: date-time TextSearch: type: string @@ -19800,10 +27100,10 @@ components: description: Gets or sets how the returned group list is built. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Gets the list of groups that the devices associated with the given events are members of. If Intersection is true, only the groups of which all devices are a member are returned. This function is used to determine the possible groups to associate a new planned change with, such that the events will be covered by it. + description: 'Gets the list of groups that the devices associated with the given events are members of. If Intersection is true, only the groups of which all devices are a member are returned. This function is used to determine the possible groups to associate a new planned change with, such that the events will be covered by it.' SetCommentForEvents: title: SetCommentForEvents type: object @@ -19815,7 +27115,7 @@ components: description: The comment Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Set comments for events @@ -19870,7 +27170,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Retrieves a list of inventory items from the hub service. @@ -19970,7 +27270,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Retrieves a list of agent inventory items grouped by their inventory item ids from the hub service. @@ -20006,7 +27306,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Retrieves a list of agents with a specific inventory item id from the hub service. @@ -20056,7 +27356,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to return the vulnerability overview matching the device filter. @@ -20095,7 +27395,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to return the vulnerabilities in an estate matching the device and vulnerability filters. @@ -20142,7 +27442,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to return the software vulnerability matching the device filter. @@ -20167,7 +27467,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Marks an inventory item a requiring an update / refresh. @@ -20352,7 +27652,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to return the software vulnerability matching the device filter. @@ -20396,7 +27696,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to return the device vulnerability matching the device filter. @@ -20433,7 +27733,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to return the device vulnerability matching the device filter. @@ -20486,7 +27786,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to return the vulnerable devices matching the CVE. @@ -20508,7 +27808,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to ignore one or more Cves until a given data. @@ -20540,7 +27840,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: A request to return the software vulnerability scan status. @@ -20603,7 +27903,7 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Retrieves a list of log4net logger configurations with pagination support. @@ -20618,7 +27918,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Returns a description for the specified report. @@ -20638,7 +27938,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Get a list of differences between two reports runs. @@ -20672,10 +27972,10 @@ components: description: The generic filter logic. This indicates how filters specified in GenericFilters are to be combined. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Gets report results for the specified agent, device or task id. + description: 'Gets report results for the specified agent, device or task id.' GetAvailableReports: title: GetAvailableReports type: object @@ -20692,7 +27992,7 @@ components: format: date-time Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: ' Gets a list of available reports for a specified group or agent.' @@ -20705,7 +28005,7 @@ components: description: The identifier of the dashboard to get. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets the user dashboard widget layout. @@ -20718,7 +28018,7 @@ components: description: The name of the dashboard to get. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets the user dashboard widget layout by name. @@ -20728,7 +28028,7 @@ components: properties: Id: type: string - description: The identifier of the dashboard to get. If not supplied a new record is created, else existing is updated. + description: 'The identifier of the dashboard to get. If not supplied a new record is created, else existing is updated.' Name: type: string description: The name of the dashboard. @@ -20739,7 +28039,7 @@ components: description: The widgets. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Stores the user dashboard widget layout. @@ -20802,7 +28102,7 @@ components: x-nullable: false timePeriodSizeSeconds: type: integer - description: The time period size of the widget data, in seconds. + description: 'The time period size of the widget data, in seconds.' format: int32 x-nullable: false eventTypes: @@ -20829,7 +28129,7 @@ components: description: The identifier of the dashboard to delete. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Deletes the user dashboard widget layout. @@ -20839,7 +28139,7 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets the user settings and selections. @@ -20858,7 +28158,7 @@ components: description: Indicates whether the user has opted to skip the welcome wizard. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Stores the user settings and selections. @@ -20868,7 +28168,7 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets the dashboard widgets. @@ -20886,7 +28186,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Represents a request to invalidate the eventcount stats for a group for a specific set of periods. @@ -20918,7 +28218,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Tests the specified SMTP details. @@ -20928,7 +28228,7 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Tests the configured Fast service can be contacted. @@ -20938,7 +28238,7 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Tests the configured Fast service can be contacted using customer credentials. @@ -20962,7 +28262,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Tests the specified SysLog details. @@ -20987,7 +28287,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Tests the specified ServiceNow details. @@ -21014,7 +28314,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Tests the specified Auditor details. @@ -21030,7 +28330,7 @@ components: format: date-time Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets a list of pipeline node names. @@ -21047,7 +28347,7 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Add a user. @@ -21121,11 +28421,11 @@ components: UserDateFormats: title: UserDateFormats required: - - Name - - LongDateTimeFormatNet - - ShortDateTimeFormatNet - - LongDateTimeFormatJs - - ShortDateTimeFormatJs + - Name + - LongDateTimeFormatNet + - ShortDateTimeFormatNet + - LongDateTimeFormatJs + - ShortDateTimeFormatJs type: object properties: Name: @@ -21178,7 +28478,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Represents a pre-authentication request to query the user's Two-factor authentication status. Counts as a sign-in attempt. @@ -21190,7 +28490,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Represents a post-authentication request to elevate the user's Two-factor authentication status. Counts as a sign-in attempt. @@ -21206,7 +28506,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Validates a user password. @@ -21218,7 +28518,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Delete a user. @@ -21230,7 +28530,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Get a user's details. @@ -21242,7 +28542,7 @@ components: $ref: '#/components/schemas/UserDetails' Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Updates stored user details. Note that UserManage permissions are required to manage any user other than the caller. @@ -21258,7 +28558,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Updates stored user password. CurrentPassword property should contain the password of the user attempting to make the change. Note that UserManage permissions are required to manage any user password other than caller's. @@ -21270,7 +28570,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Resets a user. Note that UserManage permissions are required to manage any user other than the caller. @@ -21286,7 +28586,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Resets a user password. Note that this operation is intended to manage any user other than the caller. @@ -21298,7 +28598,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Generates a reset password for preview without applying it. Pass the returned PreviewToken to resetPassword to apply it. @@ -21310,7 +28610,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Resets a user's 2FA . Note that UserManage permissions are required to manage any user other than the caller. @@ -21326,7 +28626,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Export users and the notifications they are configured to receive @@ -21336,7 +28636,7 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets a list of possible time zone names. @@ -21346,7 +28646,7 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Has the current user changed their password from any system assigned one? @@ -21367,7 +28667,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Add a group alert to a user. @@ -21383,7 +28683,7 @@ components: description: Specifies the specific alert / notification to remove. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Remove a group notification from a user @@ -21406,7 +28706,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Update a group notification from a user @@ -21418,7 +28718,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Get the configured notifications for the specified group. @@ -21430,7 +28730,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Get a list of user names. @@ -21446,10 +28746,10 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Resets the admin (or named account) password, returning a new temporary password in the response. Can only be called from the local hub console. + description: 'Resets the admin (or named account) password, returning a new temporary password in the response. Can only be called from the local hub console.' GetUserRoles: title: GetUserRoles type: object @@ -21458,7 +28758,7 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Get a list of user roles defined in the system. @@ -21468,15 +28768,15 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Gets a list of permissions names defined in the system. AddUserRole: title: AddUserRole required: - - DisplayName - - ReadOnly + - DisplayName + - ReadOnly type: object properties: Name: @@ -21495,20 +28795,20 @@ components: description: Specifies the list of names of permissions associated with the role. ReadOnly: type: boolean - description: Specifies whether the role is read only, or can be edited. + description: 'Specifies whether the role is read only, or can be edited.' x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Adds a custom user role UpdateUserRole: title: UpdateUserRole required: - - Name - - DisplayName - - Permissions + - Name + - DisplayName + - Permissions type: object properties: Name: @@ -21527,7 +28827,7 @@ components: description: Specifies the list of names of permissions associated with the role. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Update a user role @@ -21541,14 +28841,14 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Clone an existing user role. DeleteUserRole: title: DeleteUserRole required: - - Name + - Name type: object properties: Name: @@ -21556,7 +28856,7 @@ components: description: Specifies the internal name of the role to delete. Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Delete a user role. @@ -21566,7 +28866,7 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false description: Represents a request to get an Organization's license info. @@ -21583,10 +28883,10 @@ components: x-nullable: false Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Represents a request to update an Organization, used to set the license. + description: 'Represents a request to update an Organization, used to set the license.' HasRoleOrPermission: title: HasRoleOrPermission type: object @@ -21603,10 +28903,10 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Checks whether the caller, or the named user if supplied, has the specified roles and permissions. + description: 'Checks whether the caller, or the named user if supplied, has the specified roles and permissions.' GetRolesAndPermissions: title: GetRolesAndPermissions type: object @@ -21615,17 +28915,17 @@ components: type: string Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false - description: Gets roles and permissions for the caller, or the named user if supplied. + description: 'Gets roles and permissions for the caller, or the named user if supplied.' Authenticate: title: Authenticate type: object properties: provider: type: string - description: AuthProvider, e.g. credentials + description: 'AuthProvider, e.g. credentials' UserName: type: string Password: @@ -21655,7 +28955,7 @@ components: GetAgentPollResponse: title: GetAgentPollResponse required: - - Version + - Version type: object properties: AgentId: @@ -21678,7 +28978,7 @@ components: x-nullable: false HubCurrentTimeUtc: type: string - description: Indicates the current server time to return to the agent so it can compare with its own and raise a time difference alert. Optional, only returned on initial connect. + description: 'Indicates the current server time to return to the agent so it can compare with its own and raise a time difference alert. Optional, only returned on initial connect.' format: date-time DeviceSettings: $ref: '#/components/schemas/DeviceSettings' @@ -21689,12 +28989,12 @@ components: x-nullable: false description: The response object for GetAgentPoll Dictionary_String_Nullable_DateTime__: - title: Dictionary> + title: 'Dictionary>' type: object additionalProperties: type: string format: date-time - description: Dictionary> + description: 'Dictionary>' DeviceSettings: title: DeviceSettings type: object @@ -21712,7 +29012,7 @@ components: type: string AgentDeviceId: type: string - description: Specifies the combined agent and device id, for example 1,1. Either AgentId and DeviceId or GroupName must be supplied. + description: 'Specifies the combined agent and device id, for example 1,1. Either AgentId and DeviceId or GroupName must be supplied.' DiffContextLines: type: integer description: Number of context lines in a text difference comparison @@ -21734,7 +29034,7 @@ components: x-nullable: false PerformancePercentage: type: integer - description: The performance percentage is the percentage of its maximum performance that the agent will use, for example at 100 (100%) the agent will complete polls in the shortest possible time, at the expense of utilisation of local cpu and disk resources. At 0% the agent will have the least impact on the tracked system. + description: 'The performance percentage is the percentage of its maximum performance that the agent will use, for example at 100 (100%) the agent will complete polls in the shortest possible time, at the expense of utilisation of local cpu and disk resources. At 0% the agent will have the least impact on the tracked system.' format: int32 x-nullable: false PerformancePercentageIsInherited: @@ -21752,7 +29052,7 @@ components: x-nullable: false PollPeriodSeconds: type: integer - description: The poll period / frequency for this device / group, in seconds. + description: 'The poll period / frequency for this device / group, in seconds.' format: int32 x-nullable: false PollGracePeriodSeconds: @@ -21788,11 +29088,11 @@ components: description: The number of files a device file system tracker poll will be limited to before terminating the poll format: int32 x-nullable: false - description: The device settings represents the device specific options such as customised local ui password details, and tracker performance settings. + description: 'The device settings represents the device specific options such as customised local ui password details, and tracker performance settings.' GetAgentTasksResponse: title: GetAgentTasksResponse required: - - Version + - Version type: object properties: Tasks: @@ -21819,8 +29119,8 @@ components: SubmitAgentTaskResultStreamResponse: title: SubmitAgentTaskResultStreamResponse required: - - StoredId - - Version + - StoredId + - Version type: object properties: StoredId: @@ -21835,7 +29135,7 @@ components: GetPolicyTemplatesResponse: title: GetPolicyTemplatesResponse required: - - Version + - Version type: object properties: Templates: @@ -21926,7 +29226,7 @@ components: type: array items: type: string - description: Specifies the names of the trackers configured in this template, if it is a 'PolicyTemplateType.DeviceConfig'. + description: 'Specifies the names of the trackers configured in this template, if it is a ''PolicyTemplateType.DeviceConfig''.' NotificationRefId: type: string description: Specifies the tracker's notification ref id. @@ -21943,11 +29243,11 @@ components: description: Does the template contain trusted commands. ValidationStatus: type: string - description: A named policy template summary. Policy templates can be of any of the types specified by PolicyTemplateType, for example DeviceConfig, ComplianceReport or RegistrationReport. PolicyTemplates are a DTO used to add any policy template to the system based on its xml. To add an agent tracker configuration based on specific tracker DTO objects use DeviceTemplate. + description: 'A named policy template summary. Policy templates can be of any of the types specified by PolicyTemplateType, for example DeviceConfig, ComplianceReport or RegistrationReport. PolicyTemplates are a DTO used to add any policy template to the system based on its xml. To add an agent tracker configuration based on specific tracker DTO objects use DeviceTemplate.' GetPolicyTemplateVariablesResponse: title: GetPolicyTemplateVariablesResponse required: - - Version + - Version type: object properties: PolicyTemplateName: @@ -21999,7 +29299,7 @@ components: GetAgentsResponse: title: GetAgentsResponse required: - - Version + - Version type: object properties: AgentCredentials: @@ -22031,7 +29331,7 @@ components: type: array items: $ref: '#/components/schemas/Agent' - description: Specifies the related proxy agents. These are the agents that proxy the devices listed in 'Agents', if any. + description: 'Specifies the related proxy agents. These are the agents that proxy the devices listed in ''Agents'', if any.' ResultsGeneratedAtUtc: type: string description: Specifies time the results were generated at in utc. @@ -22066,7 +29366,7 @@ components: description: The list of credentials 'keys' (names) associated with the agent device id. CredentialsTestStatus: type: string - description: Specifies the status of the last credentials test, if any. + description: 'Specifies the status of the last credentials test, if any.' CredentialsTestMessage: type: string description: Specifies the a success or failure message associated with the last credentials test. @@ -22120,7 +29420,7 @@ components: SearchAgentsResponse: title: SearchAgentsResponse required: - - Version + - Version type: object properties: Agents: @@ -22157,7 +29457,7 @@ components: GetDeviceConfigResponse: title: GetDeviceConfigResponse required: - - Version + - Version type: object properties: DeviceTemplate: @@ -22166,7 +29466,7 @@ components: $ref: '#/components/schemas/PolicyTemplateRuleSet' Xml: type: string - description: Specifies the xml. Only one of DeviceTemplate, PolicyRuleSet or Xml string can be returned. + description: 'Specifies the xml. Only one of DeviceTemplate, PolicyRuleSet or Xml string can be returned.' Version: type: integer description: Specifies the response version. This indicates the service model version the response complies with. @@ -22176,24 +29476,24 @@ components: GetDeviceSettingsResponse: title: GetDeviceSettingsResponse required: - - Version + - Version type: object properties: DeviceSettings: type: array items: $ref: '#/components/schemas/DeviceSettings' - description: The device settings for the specified group or device, or if an AgentId alone was specified, a list of the DeviceSetting for each device proxied by the agent. + description: 'The device settings for the specified group or device, or if an AgentId alone was specified, a list of the DeviceSetting for each device proxied by the agent.' Version: type: integer description: Specifies the response version. This indicates the service model version the response complies with. format: int32 x-nullable: false - description: Represents the device specific options such as customised local ui password details, and tracker performance settings. + description: 'Represents the device specific options such as customised local ui password details, and tracker performance settings.' GetEventsResponse: title: GetEventsResponse required: - - Version + - Version type: object properties: Events: @@ -22287,12 +29587,12 @@ components: x-nullable: false DateDevice: type: string - description: Gets or sets the device date and time of the event, based on the event UtcOffsetHours + description: 'Gets or sets the device date and time of the event, based on the event UtcOffsetHours' format: date-time x-nullable: false DateLocal: type: string - description: Gets or sets the local user's date and time of the event, based on the GetEvents.UserTimeZoneId specified. + description: 'Gets or sets the local user''s date and time of the event, based on the GetEvents.UserTimeZoneId specified.' format: date-time x-nullable: false Status: @@ -22310,7 +29610,7 @@ components: x-nullable: false Origin: type: string - description: Gets or sets the origin of the event (Polling, LiveTracking etc) + description: 'Gets or sets the origin of the event (Polling, LiveTracking etc)' TimeZoneId: type: string description: Gets or sets the time zone id. @@ -22341,12 +29641,12 @@ components: description: Gets a URL of the event to get more details. ExtraInfo: type: string - description: Gets or sets the extra info. Where the event is an alert notification, this contains information about tracker reconfigurations, this property can be used to hold the data in a more easily parsed form. + description: 'Gets or sets the extra info. Where the event is an alert notification, this contains information about tracker reconfigurations, this property can be used to hold the data in a more easily parsed form.' UsedInBaselines: type: array items: $ref: '#/components/schemas/UsedInBaseline' - description: Gets or sets the links indicating whether the event has been used to create or amend a rule in a baseline report, and the action taken. + description: 'Gets or sets the links indicating whether the event has been used to create or amend a rule in a baseline report, and the action taken.' description: A base class for any Event raised throughout the once it enters the NNT system and is being processed AuditEvent: title: AuditEvent @@ -22403,12 +29703,12 @@ components: x-nullable: false DateDevice: type: string - description: Gets or sets the device date and time of the event, based on the event UtcOffsetHours + description: 'Gets or sets the device date and time of the event, based on the event UtcOffsetHours' format: date-time x-nullable: false DateLocal: type: string - description: Gets or sets the local user's date and time of the event, based on the GetEvents.UserTimeZoneId specified. + description: 'Gets or sets the local user''s date and time of the event, based on the GetEvents.UserTimeZoneId specified.' format: date-time x-nullable: false Status: @@ -22426,7 +29726,7 @@ components: x-nullable: false Origin: type: string - description: Gets or sets the origin of the event (Polling, LiveTracking etc) + description: 'Gets or sets the origin of the event (Polling, LiveTracking etc)' TimeZoneId: type: string description: Gets or sets the time zone id. @@ -22457,12 +29757,12 @@ components: description: Gets a URL of the event to get more details. ExtraInfo: type: string - description: Gets or sets the extra info. Where the event is an alert notification, this contains information about tracker reconfigurations, this property can be used to hold the data in a more easily parsed form. + description: 'Gets or sets the extra info. Where the event is an alert notification, this contains information about tracker reconfigurations, this property can be used to hold the data in a more easily parsed form.' UsedInBaselines: type: array items: $ref: '#/components/schemas/UsedInBaseline' - description: Gets or sets the links indicating whether the event has been used to create or amend a rule in a baseline report, and the action taken. + description: 'Gets or sets the links indicating whether the event has been used to create or amend a rule in a baseline report, and the action taken.' description: The audit event. DataResultsEvent: title: DataResultsEvent @@ -22505,12 +29805,12 @@ components: x-nullable: false DateDevice: type: string - description: Gets or sets the device date and time of the event, based on the event UtcOffsetHours + description: 'Gets or sets the device date and time of the event, based on the event UtcOffsetHours' format: date-time x-nullable: false DateLocal: type: string - description: Gets or sets the local user's date and time of the event, based on the GetEvents.UserTimeZoneId specified. + description: 'Gets or sets the local user''s date and time of the event, based on the GetEvents.UserTimeZoneId specified.' format: date-time x-nullable: false Status: @@ -22528,7 +29828,7 @@ components: x-nullable: false Origin: type: string - description: Gets or sets the origin of the event (Polling, LiveTracking etc) + description: 'Gets or sets the origin of the event (Polling, LiveTracking etc)' TimeZoneId: type: string description: Gets or sets the time zone id. @@ -22559,17 +29859,17 @@ components: description: Gets a URL of the event to get more details. ExtraInfo: type: string - description: Gets or sets the extra info. Where the event is an alert notification, this contains information about tracker reconfigurations, this property can be used to hold the data in a more easily parsed form. + description: 'Gets or sets the extra info. Where the event is an alert notification, this contains information about tracker reconfigurations, this property can be used to hold the data in a more easily parsed form.' UsedInBaselines: type: array items: $ref: '#/components/schemas/UsedInBaseline' - description: Gets or sets the links indicating whether the event has been used to create or amend a rule in a baseline report, and the action taken. + description: 'Gets or sets the links indicating whether the event has been used to create or amend a rule in a baseline report, and the action taken.' description: Represents an event containing agent response data (e.g to a 'get processes' request) SubmitAlertEventsLimitedResponse: title: SubmitAlertEventsLimitedResponse required: - - Version + - Version type: object properties: BackOffSeconds: @@ -22585,7 +29885,7 @@ components: SubmitBaselineEventsLimitedResponse: title: SubmitBaselineEventsLimitedResponse required: - - Version + - Version type: object properties: BackOffSeconds: @@ -22601,7 +29901,7 @@ components: SubmitDeviceEventsLimitedResponse: title: SubmitDeviceEventsLimitedResponse required: - - Version + - Version type: object properties: BackOffSeconds: @@ -22617,7 +29917,7 @@ components: SystemReadyResponse: title: SystemReadyResponse required: - - Version + - Version type: object properties: IsReady: @@ -22669,12 +29969,12 @@ components: properties: SessionTimeout: type: integer - description: Specifies the length of time after which a session should timeout, expressed in minutes. + description: 'Specifies the length of time after which a session should timeout, expressed in minutes.' format: int32 x-nullable: false SessionTimeoutWarning: type: integer - description: Specifies the length of time a session timeout warning should be available, expressed in seconds. + description: 'Specifies the length of time a session timeout warning should be available, expressed in seconds.' format: int32 x-nullable: false LicenseDaysRemaining: @@ -22829,20 +30129,20 @@ components: items: $ref: '#/components/schemas/BackgroundTaskDetails' Dictionary_String_ComponentStatus_: - title: Dictionary + title: 'Dictionary' type: object additionalProperties: enum: - - Unknown - - Starting - - Up - - Stopping - - Down - - Busy - - Fault - - RequiresUpgrade + - Unknown + - Starting + - Up + - Stopping + - Down + - Busy + - Fault + - RequiresUpgrade type: string - description: Dictionary + description: 'Dictionary' PerformanceSnapshot: title: PerformanceSnapshot type: object @@ -22890,13 +30190,13 @@ components: type: string description: PerformanceItem Dictionary_String_Double_: - title: Dictionary + title: 'Dictionary' type: object additionalProperties: type: number format: double x-nullable: false - description: Dictionary + description: 'Dictionary' List_PerformanceSnapshot_: title: List type: array @@ -22905,7 +30205,7 @@ components: GetCacheStatsResponse: title: GetCacheStatsResponse required: - - Version + - Version type: object properties: GroupCounts: @@ -22938,7 +30238,7 @@ components: GetAvailableReportTypesResponse: title: GetAvailableReportTypesResponse required: - - Version + - Version type: object properties: Items: @@ -22963,7 +30263,7 @@ components: GetReportTemplatesResponse: title: GetReportTemplatesResponse required: - - Version + - Version type: object properties: Items: @@ -23012,7 +30312,7 @@ components: GetScheduledReportsResponse: title: GetScheduledReportsResponse required: - - Version + - Version type: object properties: Items: @@ -23025,7 +30325,7 @@ components: description: Specifies the response version. This indicates the service model version the response complies with. format: int32 x-nullable: false - description: The response to requests to add, query or update scheduled reports, listing the new states of the reports affected + description: 'The response to requests to add, query or update scheduled reports, listing the new states of the reports affected' ScheduledReportItem: title: ScheduledReportItem type: object @@ -23083,12 +30383,12 @@ components: $ref: '#/components/schemas/ReportEmailDelivery' KeepUnscheduledResultsForMinutes: type: integer - description: Specifies how long to keep 'adhoc' (ie non-scheduled) report results for, in minutes. + description: 'Specifies how long to keep ''adhoc'' (ie non-scheduled) report results for, in minutes.' format: int32 x-nullable: false KeepScheduledResultsForMinutes: type: integer - description: Specifies how long to keep scheduled report results for, in minutes. + description: 'Specifies how long to keep scheduled report results for, in minutes.' format: int32 x-nullable: false ScheduledState: @@ -23098,7 +30398,7 @@ components: description: Specifies a text summary of schedule and email settings. WaitForAdhocResultsMinutes: type: integer - description: Specifies long to wait for a run's queries to complete, in minutes. + description: 'Specifies long to wait for a run''s queries to complete, in minutes.' format: int32 x-nullable: false OverrideWaitForResults: @@ -23109,7 +30409,7 @@ components: UpdateReportTemplateResponse: title: UpdateReportTemplateResponse required: - - Version + - Version type: object properties: FileId: @@ -23123,7 +30423,7 @@ components: DataSpecDeviceMonitoringReportResponse: title: DataSpecDeviceMonitoringReportResponse required: - - Version + - Version type: object properties: ReportMetadata: @@ -23143,14 +30443,14 @@ components: type: array items: $ref: '#/components/schemas/SummaryItem' - description: A list of key value pairs indicating the settings that produced the report, including query parameters and report metadata + description: 'A list of key value pairs indicating the settings that produced the report, including query parameters and report metadata' HasNoResults: type: boolean - description: Indicates whether the report has no results. This is report specific, eg for a events and planned changes reports it means no events in the time period, for a compliance report run it means there were no devices to report on in the specified group etc. + description: 'Indicates whether the report has no results. This is report specific, eg for a events and planned changes reports it means no events in the time period, for a compliance report run it means there were no devices to report on in the specified group etc.' x-nullable: false ItemName: type: string - description: Specifies the descriptive name of the result item, for example 'report', 'planned change', 'event' etc. + description: 'Specifies the descriptive name of the result item, for example ''report'', ''planned change'', ''event'' etc.' ErrorMessage: type: string description: Specifies the descriptive error message for a failed report. @@ -23163,13 +30463,13 @@ components: ReportMetadata: title: ReportMetadata required: - - ReportItemId - - ReportInstanceId + - ReportItemId + - ReportInstanceId type: object properties: AgentDeviceId: type: string - description: Specifies the combined agent and device id, for example 1,1. + description: 'Specifies the combined agent and device id, for example 1,1.' DeviceName: type: string description: Specifies the device name. @@ -23230,7 +30530,7 @@ components: description: Specifies the report error message if any. DeviceStatusMessage: type: string - description: Specifies the report status message for the device, if any. + description: 'Specifies the report status message for the device, if any.' Id: type: string InstanceType: @@ -23341,19 +30641,19 @@ components: description: Specifies the fully qualified domain name. HostType: type: string - description: Specifies the host type. This broadly indicates whether the device is windows or unix, or a DB or network device. + description: 'Specifies the host type. This broadly indicates whether the device is windows or unix, or a DB or network device.' AgentType: type: string - description: Specifies the agent type. This indicates the agents runtime technology, based on AgentType enumeration, where available for the agent (old agents don't supply it) + description: 'Specifies the agent type. This indicates the agents runtime technology, based on AgentType enumeration, where available for the agent (old agents don''t supply it)' Os: type: string description: Specifies the operating system as discovered by the agent. OsUserSpecified: type: string - description: Specifies the operating system as entered by the user. This will override the discovered Os in the UI, if specified. + description: 'Specifies the operating system as entered by the user. This will override the discovered Os in the UI, if specified.' KnownOsName: type: string - description: Specifies the known os name. This is the new OS name from the system defined list, it is either auto-mapped from the Agent's discovered Os setting or selected by the user at the point of adding a proxied device. + description: 'Specifies the known os name. This is the new OS name from the system defined list, it is either auto-mapped from the Agent''s discovered Os setting or selected by the user at the point of adding a proxied device.' OsVariant: type: string description: Specifies the os variant. This is one of the the system defined settings for the selected 'KnownOsName'. For example it might be '64 bit version' etc.. @@ -23405,7 +30705,7 @@ components: description: Specifies the method to use when detecting if a proxied device is online PingTimeoutSeconds: type: integer - description: Specifies the 'OnlineDetection' ping timeout seconds, used with 'CredentialsService.Types.OnlineDetection.Ping'. + description: 'Specifies the ''OnlineDetection'' ping timeout seconds, used with ''CredentialsService.Types.OnlineDetection.Ping''.' format: int32 x-nullable: false TcpConnectPort: @@ -23419,7 +30719,7 @@ components: x-nullable: false UniqueId: type: string - description: Specifies a value uniquely identifying the agent independent of name or agent id. Used to detect a need to re-register when underlying hub store has been emptied, otherwise the auto incrementing agent id counter can result in clashes as already used ids are reissued to different agents. + description: 'Specifies a value uniquely identifying the agent independent of name or agent id. Used to detect a need to re-register when underlying hub store has been emptied, otherwise the auto incrementing agent id counter can result in clashes as already used ids are reissued to different agents.' IsProxied: type: boolean description: Specifies a value indicating whether connection to the device is proxied by another device. @@ -23475,12 +30775,12 @@ components: type: array items: $ref: '#/components/schemas/NameValuePair' - description: Specifies the list of agent credentials, used by this agent to connect to other proxied devices. + description: 'Specifies the list of agent credentials, used by this agent to connect to other proxied devices.' DbConnection: $ref: '#/components/schemas/DbConnection' CredentialsTestStatus: type: string - description: Specifies the status of the last credentials test, if any. + description: 'Specifies the status of the last credentials test, if any.' CredentialsTestMessage: type: string description: Specifies the a success or failure message associated with the last credentials test. @@ -23524,7 +30824,7 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false VersionString: @@ -23595,13 +30895,13 @@ components: items: $ref: '#/components/schemas/PolicyTemplateDetails' Dictionary_String_List_PolicyTemplateDetails__: - title: Dictionary> + title: 'Dictionary>' type: object additionalProperties: type: array items: $ref: '#/components/schemas/PolicyTemplateDetails' - description: Dictionary> + description: 'Dictionary>' DeviceEventCountsSummary: title: DeviceEventCountsSummary type: object @@ -23735,7 +31035,7 @@ components: GetRuleResultsResponse: title: GetRuleResultsResponse required: - - Version + - Version type: object properties: Items: @@ -23797,17 +31097,17 @@ components: $ref: '#/components/schemas/TextDifference' description: RuleResultState Dictionary_String_List_String__: - title: Dictionary> + title: 'Dictionary>' type: object additionalProperties: type: array items: type: string - description: Dictionary> + description: 'Dictionary>' ComplianceReportSummaryResponse: title: ComplianceReportSummaryResponse required: - - Version + - Version type: object properties: GroupName: @@ -23911,7 +31211,7 @@ components: GetCurrentPlannedChangesResponse: title: GetCurrentPlannedChangesResponse required: - - Version + - Version type: object properties: PlannedChanges: @@ -23957,7 +31257,7 @@ components: GetComplianceDataResponse: title: GetComplianceDataResponse required: - - Version + - Version type: object properties: ReportSummaries: @@ -23979,7 +31279,7 @@ components: description: Specifies the response version. This indicates the service model version the response complies with. format: int32 x-nullable: false - description: Compliance data by report, for either individual devices, or as group average. + description: 'Compliance data by report, for either individual devices, or as group average.' ReportSummary: title: ReportSummary type: object @@ -24025,8 +31325,8 @@ components: ReportScore: title: ReportScore required: - - ReportItemId - - ReportInstanceId + - ReportItemId + - ReportInstanceId type: object properties: Version: @@ -24086,7 +31386,7 @@ components: GetAvailableComplianceDataResponse: title: GetAvailableComplianceDataResponse required: - - Version + - Version type: object properties: AvailableComplianceReports: @@ -24104,7 +31404,7 @@ components: ComplianceReportRun: title: ComplianceReportRun required: - - ReportItemId + - ReportItemId type: object properties: GroupDisplayName: @@ -24123,13 +31423,13 @@ components: items: $ref: '#/components/schemas/ComplianceReportRun' Dictionary_String_List_ComplianceReportRun__: - title: Dictionary> + title: 'Dictionary>' type: object additionalProperties: type: array items: $ref: '#/components/schemas/ComplianceReportRun' - description: Dictionary> + description: 'Dictionary>' ComplianceReportRunDetails: title: ComplianceReportRunDetails type: object @@ -24175,7 +31475,7 @@ components: GetDeviceActivityResponse: title: GetDeviceActivityResponse required: - - Version + - Version type: object properties: TotalDevices: @@ -24250,7 +31550,7 @@ components: GetEventCountsResponse: title: GetEventCountsResponse required: - - Version + - Version type: object properties: DeviceOrGroupName: @@ -24298,7 +31598,7 @@ components: description: Specifies the response version. This indicates the service model version the response complies with. format: int32 x-nullable: false - description: Represents a summary of event counts for the devices or groups specified by the DeviceFilter, for the specified time period. + description: 'Represents a summary of event counts for the devices or groups specified by the DeviceFilter, for the specified time period.' EventCountsSummary: title: EventCountsSummary type: object @@ -24363,13 +31663,13 @@ components: x-nullable: false description: EventCountsSummary Dictionary_EventType_Int32_: - title: Dictionary + title: 'Dictionary' type: object additionalProperties: type: integer format: int32 x-nullable: false - description: Dictionary + description: 'Dictionary' List_GetEventCountsResponse_: title: List type: array @@ -24378,7 +31678,7 @@ components: ExecuteReportResponse: title: ExecuteReportResponse required: - - Version + - Version type: object properties: Instance: @@ -24431,7 +31731,7 @@ components: GetScheduledInstancesResponse: title: GetScheduledInstancesResponse required: - - Version + - Version type: object properties: Items: @@ -24447,7 +31747,7 @@ components: GetScheduledInstanceRenderedResponse: title: GetScheduledInstanceRenderedResponse required: - - Version + - Version type: object properties: Items: @@ -24484,7 +31784,7 @@ components: type: string ReportInstanceId: type: string - description: Represents the previously rendered output, for example a pdf file, for a specific report run. + description: 'Represents the previously rendered output, for example a pdf file, for a specific report run.' AgentSoftwareUpdate: title: AgentSoftwareUpdate type: object @@ -24494,7 +31794,7 @@ components: description: Specifies the update ID UpdateType: type: string - description: Specifies the agent software update type (deb, rpm etc) + description: 'Specifies the agent software update type (deb, rpm etc)' ZipFileName: type: string description: Specifies the zip file name @@ -24529,7 +31829,7 @@ components: GetSyncServiceConfigItemsResponse: title: GetSyncServiceConfigItemsResponse required: - - Version + - Version type: object properties: ConfigurationValues: @@ -24571,7 +31871,7 @@ components: AddSyncServiceConfigItemResponse: title: AddSyncServiceConfigItemResponse required: - - Version + - Version type: object properties: ConfigurationValue: @@ -24585,7 +31885,7 @@ components: GetConfigItemsResponse: title: GetConfigItemsResponse required: - - Version + - Version type: object properties: ConfigItems: @@ -24649,15 +31949,15 @@ components: description: The id of the new item created. description: The id of the new item created. Dictionary_String_NewId_: - title: Dictionary + title: 'Dictionary' type: object additionalProperties: $ref: '#/components/schemas/NewId' - description: Dictionary + description: 'Dictionary' AddConfigItemResponse: title: AddConfigItemResponse required: - - Version + - Version type: object properties: ConfigItems: @@ -24672,13 +31972,13 @@ components: x-nullable: false description: The response delivered after adding a new config key / value. Dictionary_CredentialType_List_String__: - title: Dictionary> + title: 'Dictionary>' type: object additionalProperties: type: array items: type: string - description: Dictionary> + description: 'Dictionary>' List_Credentials_: title: List type: array @@ -24687,7 +31987,7 @@ components: GetAgentTaskStatusesResponse: title: GetAgentTaskStatusesResponse required: - - Version + - Version type: object properties: Statuses: @@ -24755,7 +32055,7 @@ components: SubmitAgentTasksResponse: title: SubmitAgentTasksResponse required: - - Version + - Version type: object properties: Tasks: @@ -24781,13 +32081,13 @@ components: description: Specifies the file name for this fie hash binary. HostType: type: string - description: Specifies the host type (Windows, Unix etc) associated with this file hash binary. + description: 'Specifies the host type (Windows, Unix etc) associated with this file hash binary.' OperatingSystem: type: string description: Specifies the operating system associated with this file hash binary. Variant: type: string - description: Specifies the variant (X64, i386 etc) associated with this file hash binary. + description: 'Specifies the variant (X64, i386 etc) associated with this file hash binary.' description: Describes a file hash binary. List_FileHashBinary_: title: List @@ -24797,8 +32097,8 @@ components: GetPlannedChangeInstanceMembersResponse: title: GetPlannedChangeInstanceMembersResponse required: - - InstanceId - - Version + - InstanceId + - Version type: object properties: InstanceId: @@ -24834,7 +32134,7 @@ components: GetPlannedChangesInstancesResponse: title: GetPlannedChangesInstancesResponse required: - - Version + - Version type: object properties: PlannedChangeInstances: @@ -24856,11 +32156,11 @@ components: description: Specifies the response version. This indicates the service model version the response complies with. format: int32 x-nullable: false - description: Describes planned change instances, filtered by name, id or groups that are members. + description: 'Describes planned change instances, filtered by name, id or groups that are members.' PlannedChangeInstance: title: PlannedChangeInstance required: - - InstanceId + - InstanceId type: object properties: Version: @@ -24874,7 +32174,7 @@ components: x-nullable: false DisallowRules: type: boolean - description: Specifies a value indicating whether the underlying planned change is allowed to have rules, or is a just container for manually added events. + description: 'Specifies a value indicating whether the underlying planned change is allowed to have rules, or is a just container for manually added events.' x-nullable: false InstanceId: type: string @@ -24895,7 +32195,7 @@ components: description: Specifies the description. Origin: type: string - description: Specifies the origin of the planned change. Optional, this can be 'Interactive' for UI created, or the name of an ITSM instance when creates by sync service. + description: 'Specifies the origin of the planned change. Optional, this can be ''Interactive'' for UI created, or the name of an ITSM instance when creates by sync service.' StartTimeUtc: type: string description: Specifies the UTC start time of the instance. @@ -24979,7 +32279,7 @@ components: properties: Version: type: integer - description: Specifies the request version. If specified, this indicates the service model version the request complies with. + description: 'Specifies the request version. If specified, this indicates the service model version the request complies with.' format: int32 x-nullable: false Name: @@ -24993,7 +32293,7 @@ components: description: Specifies the description text. Origin: type: string - description: Specifies the origin of the planned change ruleset. Optional, this can be 'Interactive' for UI created, or the name of an ITSM instance when creates by sync service. + description: 'Specifies the origin of the planned change ruleset. Optional, this can be ''Interactive'' for UI created, or the name of an ITSM instance when creates by sync service.' CreationDateUtc: type: string description: Specifies the UTC creation date of the planned change. @@ -25006,7 +32306,7 @@ components: x-nullable: false DisallowRules: type: boolean - description: Specifies a value indicating whether the planned change is allowed to have rules, or is a just container for manually added events. + description: 'Specifies a value indicating whether the planned change is allowed to have rules, or is a just container for manually added events.' x-nullable: false Rules: $ref: '#/components/schemas/Dictionary_String_PlannedChangeRule_' @@ -25028,7 +32328,7 @@ components: GetPlannedChangeInstancesNameValueResponse: title: GetPlannedChangeInstancesNameValueResponse required: - - Version + - Version type: object properties: PlannedChangeInstances: @@ -25050,11 +32350,11 @@ components: description: Specifies the response version. This indicates the service model version the response complies with. format: int32 x-nullable: false - description: Describes planned change instances, filtered by name, id or groups that are members. + description: 'Describes planned change instances, filtered by name, id or groups that are members.' PlannedChangeInstanceNameValue: title: PlannedChangeInstanceNameValue required: - - InstanceId + - InstanceId type: object properties: InstanceId: @@ -25070,7 +32370,7 @@ components: properties: IsPreview: type: boolean - description: Specifies a value indicating whether the values returned on this object are a preview, or have really been created, 'AddPlannedChangeInstanceFromEvents.PreviewOnly'. + description: 'Specifies a value indicating whether the values returned on this object are a preview, or have really been created, ''AddPlannedChangeInstanceFromEvents.PreviewOnly''.' x-nullable: false PlannedChange: $ref: '#/components/schemas/PlannedChangeDefinition' @@ -25080,7 +32380,7 @@ components: GetPlannedChangesResponse: title: GetPlannedChangesResponse required: - - Version + - Version type: object properties: PlannedChanges: @@ -25107,7 +32407,7 @@ components: AnalyzePlannedChangeResponse: title: AnalyzePlannedChangeResponse required: - - Version + - Version type: object properties: RuleIdsReplaced: @@ -25216,7 +32516,7 @@ components: WhitelistCommandComponentResponse: title: WhitelistCommandComponentResponse required: - - Version + - Version type: object properties: Success: @@ -25249,7 +32549,7 @@ components: CommandComponentTemplateResponse: title: CommandComponentTemplateResponse required: - - Version + - Version type: object properties: Success: @@ -25266,7 +32566,7 @@ components: GetAllCommandComponentTemplatesResponse: title: GetAllCommandComponentTemplatesResponse required: - - Version + - Version type: object properties: Success: @@ -25297,7 +32597,7 @@ components: GetAllCommandComponentsTemplatesResponse: title: GetAllCommandComponentsTemplatesResponse required: - - Version + - Version type: object properties: Success: @@ -25316,7 +32616,7 @@ components: GetCloudTemplateCreationStatusResponse: title: GetCloudTemplateCreationStatusResponse required: - - Version + - Version type: object properties: CloudSystemName: @@ -25383,7 +32683,7 @@ components: SetupPolicyTemplateResponse: title: SetupPolicyTemplateResponse required: - - Version + - Version type: object properties: Version: @@ -25395,7 +32695,7 @@ components: GetPolicyTemplateCreationStatusResponse: title: GetPolicyTemplateCreationStatusResponse required: - - Version + - Version type: object properties: PolicyTemplateName: @@ -25484,7 +32784,7 @@ components: GetMostRecentPolicyResultsResponse: title: GetMostRecentPolicyResultsResponse required: - - Version + - Version type: object properties: Results: @@ -25690,7 +32990,7 @@ components: AddPolicyTemplateRulesResponse: title: AddPolicyTemplateRulesResponse required: - - Version + - Version type: object properties: ActionsTaken: @@ -25731,7 +33031,7 @@ components: UploadPolicyTemplateResponse: title: UploadPolicyTemplateResponse required: - - Version + - Version type: object properties: AddPolicyTemplateResponses: @@ -25748,7 +33048,7 @@ components: GetAgentProcessesResponse: title: GetAgentProcessesResponse required: - - Version + - Version type: object properties: TaskId: @@ -25766,7 +33066,7 @@ components: StartAgentTrackerResponse: title: StartAgentTrackerResponse required: - - Version + - Version type: object properties: TaskId: @@ -25784,7 +33084,7 @@ components: GetAgentServicesResponse: title: GetAgentServicesResponse required: - - Version + - Version type: object properties: TaskId: @@ -25802,7 +33102,7 @@ components: GetGroupPolicyResponse: title: GetGroupPolicyResponse required: - - Version + - Version type: object properties: Templates: @@ -25828,7 +33128,7 @@ components: AddGroupPolicyResponse: title: AddGroupPolicyResponse required: - - Version + - Version type: object properties: Templates: @@ -25854,7 +33154,7 @@ components: GetAgentsRankedResponse: title: GetAgentsRankedResponse required: - - Version + - Version type: object properties: AgentCredentials: @@ -25896,7 +33196,7 @@ components: type: array items: $ref: '#/components/schemas/Agent' - description: Specifies the related proxy agents. These are the agents that proxy the devices listed in 'Agents', if any. + description: 'Specifies the related proxy agents. These are the agents that proxy the devices listed in ''Agents'', if any.' ResultsGeneratedAtUtc: type: string description: Specifies time the results were generated at in utc. @@ -25934,18 +33234,18 @@ components: x-nullable: false description: The response objeect for GetAgentsRanked KeyValuePair_String_String_: - title: KeyValuePair + title: 'KeyValuePair' type: object properties: Key: type: string Value: type: string - description: KeyValuePair + description: 'KeyValuePair' GroupMembersResponse: title: GroupMembersResponse required: - - Version + - Version type: object properties: GroupMembers: @@ -25994,7 +33294,7 @@ components: GetGroupsResponse: title: GetGroupsResponse required: - - Version + - Version type: object properties: Groups: @@ -26065,7 +33365,7 @@ components: description: Gets or sets the list of users to notify. LastActivityTimeUtc: type: string - description: Gets or sets the last activity utc time, this is the time the groups templates of memberships were last changed. + description: 'Gets or sets the last activity utc time, this is the time the groups templates of memberships were last changed.' format: date-time x-nullable: false MemberOf: @@ -26085,7 +33385,7 @@ components: FileLiveTrackingRequiresBaselineCompletion: type: boolean description: Gets or sets the file live tracking requires baseline completion flag. - description: The partial device settings represents the device specific options such as customised local ui password details, and tracker performance settings stored on a specific group. The Device Settings for a specific device are derived from a set of these. + description: 'The partial device settings represents the device specific options such as customised local ui password details, and tracker performance settings stored on a specific group. The Device Settings for a specific device are derived from a set of these.' ScheduledPolicyTemplate: title: ScheduledPolicyTemplate type: object @@ -26127,7 +33427,7 @@ components: description: Specifies the last result event id. WaitForCompletionUntilUtc: type: string - description: Specifies the utc time to wait until, for completion of the current set of tasks. + description: 'Specifies the utc time to wait until, for completion of the current set of tasks.' format: date-time Status: type: string @@ -26156,7 +33456,7 @@ components: GetGroupsTreeResponse: title: GetGroupsTreeResponse required: - - Groups + - Groups type: object properties: Groups: @@ -26196,7 +33496,7 @@ components: AddGroupResponse: title: AddGroupResponse required: - - Version + - Version type: object properties: Name: @@ -26211,7 +33511,7 @@ components: GetOverdueDevicesResponse: title: GetOverdueDevicesResponse required: - - Version + - Version type: object properties: Devices: @@ -26228,7 +33528,7 @@ components: DeleteDevicePermanentlyResponse: title: DeleteDevicePermanentlyResponse required: - - Version + - Version type: object properties: Challenge: @@ -26239,11 +33539,11 @@ components: description: Specifies the response version. This indicates the service model version the response complies with. format: int32 x-nullable: false - description: The response to a request to delete a specified Agent from the system. On first call the system will issue a challenge which must be responded to and supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code. + description: 'The response to a request to delete a specified Agent from the system. On first call the system will issue a challenge which must be responded to and supplied on a repetition of the initial request. Contact NNT Support, supplying the text of the challenge, in order be be issued with an authorising response code.' GetDeviceFiltersResponse: title: GetDeviceFiltersResponse required: - - Version + - Version type: object properties: DeviceFilters: @@ -26270,7 +33570,7 @@ components: TestAgentCredentialsResponse: title: TestAgentCredentialsResponse required: - - Version + - Version type: object properties: TaskId: @@ -26308,7 +33608,7 @@ components: UserName: type: string description: 'Gets or sets the name of the user. ' - description: The ip address blocking status represents the reason why an ipaddress is blocked, based on analysis of the stored blocking details. + description: 'The ip address blocking status represents the reason why an ipaddress is blocked, based on analysis of the stored blocking details.' List_IpAddressBlockingStatus_: title: List type: array @@ -26317,7 +33617,7 @@ components: DiscoverDevicesResponse: title: DiscoverDevicesResponse required: - - Version + - Version type: object properties: TaskId: @@ -26335,7 +33635,7 @@ components: GetEventHistoryResponse: title: GetEventHistoryResponse required: - - Version + - Version type: object properties: EventId: @@ -26373,7 +33673,7 @@ components: GetEventDeviceGroupsResponse: title: GetEventDeviceGroupsResponse required: - - Version + - Version type: object properties: GroupNames: @@ -26395,7 +33695,7 @@ components: GetInventoryResponse: title: GetInventoryResponse required: - - Version + - Version type: object properties: Items: @@ -26421,7 +33721,7 @@ components: GetAgentInventoryItemsGroupedResponse: title: GetAgentInventoryItemsGroupedResponse required: - - Version + - Version type: object properties: Items: @@ -26473,7 +33773,7 @@ components: GetAgentInventoryAgentsDetailResponse: title: GetAgentInventoryAgentsDetailResponse required: - - Version + - Version type: object properties: Items: @@ -26510,7 +33810,7 @@ components: GetVulnerabilityOverviewResponse: title: GetVulnerabilityOverviewResponse required: - - Version + - Version type: object properties: SoftwareVulnerabilityScoresV3: @@ -26534,7 +33834,7 @@ components: type: array items: $ref: '#/components/schemas/SoftwareItem' - description: Specifies a list of high risk software items. A software item is considered high risk if it has a known cve of critical or high V3 severity, or high V2 severity + description: 'Specifies a list of high risk software items. A software item is considered high risk if it has a known cve of critical or high V3 severity, or high V2 severity' IgnoredCves: type: array items: @@ -26601,7 +33901,7 @@ components: GetVulnerabilityScanStatusResponse: title: GetVulnerabilityScanStatusResponse required: - - Version + - Version type: object properties: InventoryItemsInQueue: @@ -26622,17 +33922,17 @@ components: x-nullable: false description: The response object for GetVulnerabilityStatus Dictionary_String_Int32_: - title: Dictionary + title: 'Dictionary' type: object additionalProperties: type: integer format: int32 x-nullable: false - description: Dictionary + description: 'Dictionary' GetVulnerabilityResponse: title: GetVulnerabilityResponse required: - - Version + - Version type: object properties: CveItems: @@ -26886,7 +34186,7 @@ components: GetSoftwareVulnerabilityResponse: title: GetSoftwareVulnerabilityResponse required: - - Version + - Version type: object properties: SoftwareItems: @@ -26913,7 +34213,7 @@ components: GetSoftwareVulnerabilityDetailResponse: title: GetSoftwareVulnerabilityDetailResponse required: - - Version + - Version type: object properties: CvesList: @@ -26940,7 +34240,7 @@ components: GetDeviceVulnerabilityResponse: title: GetDeviceVulnerabilityResponse required: - - Version + - Version type: object properties: VulnerableDevices: @@ -26984,7 +34284,7 @@ components: GetDeviceVulnerabilityDetailResponse: title: GetDeviceVulnerabilityDetailResponse required: - - Version + - Version type: object properties: CvesList: @@ -27011,7 +34311,7 @@ components: GetCvesForRelatedCpesResponse: title: GetCvesForRelatedCpesResponse required: - - Version + - Version type: object properties: CvesList: @@ -27037,7 +34337,7 @@ components: GetVulnerableDeviceDetailResponse: title: GetVulnerableDeviceDetailResponse required: - - Version + - Version type: object properties: VulnerableDevices: @@ -27113,7 +34413,7 @@ components: GetLog4NetConfigItemsResponse: title: GetLog4NetConfigItemsResponse required: - - Version + - Version type: object properties: LoggerConfigs: @@ -27190,7 +34490,7 @@ components: GetReportDataResponse: title: GetReportDataResponse required: - - Version + - Version type: object properties: ReportId: @@ -27298,7 +34598,7 @@ components: GetAvailableReportsResponse: title: GetAvailableReportsResponse required: - - Version + - Version type: object properties: ReportMetadata: @@ -27437,7 +34737,7 @@ components: GetUserTwoFactorStatusResponse: title: GetUserTwoFactorStatusResponse required: - - Version + - Version type: object properties: ChangePasswordByUtc: @@ -27499,7 +34799,7 @@ components: ResetUserPasswordResponse: title: ResetUserPasswordResponse required: - - Version + - Version type: object properties: Password: @@ -27516,7 +34816,7 @@ components: PreviewResetUserPasswordResponse: title: PreviewResetUserPasswordResponse required: - - Version + - Version type: object properties: Password: @@ -27556,7 +34856,7 @@ components: GetUserRolesResponse: title: GetUserRolesResponse required: - - Version + - Version type: object properties: Roles: @@ -27580,10 +34880,10 @@ components: UserRole: title: UserRole required: - - Name - - DisplayName - - Permissions - - ReadOnly + - Name + - DisplayName + - Permissions + - ReadOnly type: object properties: Name: @@ -27602,13 +34902,13 @@ components: description: Specifies the list of names of permissions associated with the role. ReadOnly: type: boolean - description: Specifies whether the role is read only, or can be edited. + description: 'Specifies whether the role is read only, or can be edited.' x-nullable: false description: UserRole AddUserRoleResponse: title: AddUserRoleResponse required: - - Version + - Version type: object properties: Roles: @@ -27624,7 +34924,7 @@ components: UpdateUserRoleResponse: title: UpdateUserRoleResponse required: - - Version + - Version type: object properties: Roles: @@ -27640,7 +34940,7 @@ components: GetLicenseInfoResponse: title: GetLicenseInfoResponse required: - - Version + - Version type: object properties: Description: @@ -27670,7 +34970,7 @@ components: GetRolesAndPermissionsResponse: title: GetRolesAndPermissionsResponse required: - - Version + - Version type: object properties: UserName: @@ -27726,122 +35026,123 @@ components: required: true schema: enum: - - application/json + - application/json type: string securitySchemes: Bearer: - type: http - scheme: bearer + type: apiKey + name: Authorization + in: header tags: -- name: acknowledgeEvents -- name: addDeviceConfigProcessRules -- name: agentInventoryAgentsDetail -- name: agentInventoryGrouped -- name: agentProcesses -- name: agents -- name: agentServices -- name: agentSoftwareUpdateSchedules -- name: agentsRanked -- name: agentUpdates -- name: alertEvents -- name: auth -- name: availableReports -- name: baselineEvents -- name: cloudTemplate -- name: command -- name: commandParser -- name: configItem -- name: configItems -- name: credential -- name: credentials -- name: credentialsKeyedByType -- name: dashboard -- name: device -- name: deviceConfig -- name: deviceConfigTemplate -- name: deviceConfigTemplateNames -- name: deviceCredentials -- name: deviceDbCredentials -- name: deviceEvents -- name: deviceFilter -- name: deviceFilters -- name: deviceHostType -- name: deviceName -- name: deviceOnlineStatus -- name: devicePolicyTemplate -- name: devices -- name: deviceSettings -- name: discoverDevices -- name: discoveredDevices -- name: downloadAgentUpdate -- name: downloadFileHash -- name: downloadFileHashById -- name: event -- name: eventDeviceGroups -- name: events -- name: exportAgents -- name: exportUserNotifications -- name: getFileHashBinaries -- name: group -- name: groupAlerts -- name: groupMembers -- name: groupMemberships -- name: groupPolicy -- name: groupPolicyNames -- name: groups -- name: groupsTree -- name: inventory -- name: ipBlocking -- name: licenseInfo -- name: log4netConfigs -- name: misc -- name: openapi3.yaml -- name: organization -- name: permissions -- name: pipelineNodes -- name: plannedChangeInstances -- name: plannedChangeRule -- name: plannedChanges -- name: policyRecent -- name: policyTemplate -- name: policyTemplateAsFile -- name: policyTemplates -- name: policyTemplateVariables -- name: reParentDevices -- name: reportData -- name: reportDescription -- name: reportDifferences -- name: reportExecute -- name: reportRender -- name: reportRenderIsCached -- name: reportRenderStart -- name: reports -- name: resetAdminPassword -- name: resubmitEvents -- name: setCommentsForEvents -- name: startAgentTracker -- name: stats -- name: status -- name: submitAgentTaskResult -- name: submitAgentTaskResultData -- name: submitAgentTaskResultStream -- name: syncServiceConfigItems -- name: testAgentCredentials -- name: testAuditorConnection -- name: testFastConnection -- name: testFastCustomerConnection -- name: testServiceNowConnection -- name: testSmtpConnection -- name: testSyslogConnection -- name: timezones -- name: updatehubdetails -- name: uploadAgentUpdate -- name: uploadPolicyTemplate -- name: userDashboard -- name: userHasChangedPassword -- name: userRoles -- name: userRolesPermisions -- name: userRolesPermissions -- name: users -- name: userSettings -- name: vulnerabilityscanstatus + - name: acknowledgeEvents + - name: addDeviceConfigProcessRules + - name: agentInventoryAgentsDetail + - name: agentInventoryGrouped + - name: agentProcesses + - name: agents + - name: agentServices + - name: agentSoftwareUpdateSchedules + - name: agentsRanked + - name: agentUpdates + - name: alertEvents + - name: auth + - name: availableReports + - name: baselineEvents + - name: cloudTemplate + - name: command + - name: commandParser + - name: configItem + - name: configItems + - name: credential + - name: credentials + - name: credentialsKeyedByType + - name: dashboard + - name: device + - name: deviceConfig + - name: deviceConfigTemplate + - name: deviceConfigTemplateNames + - name: deviceCredentials + - name: deviceDbCredentials + - name: deviceEvents + - name: deviceFilter + - name: deviceFilters + - name: deviceHostType + - name: deviceName + - name: deviceOnlineStatus + - name: devicePolicyTemplate + - name: devices + - name: deviceSettings + - name: discoverDevices + - name: discoveredDevices + - name: downloadAgentUpdate + - name: downloadFileHash + - name: downloadFileHashById + - name: event + - name: eventDeviceGroups + - name: events + - name: exportAgents + - name: exportUserNotifications + - name: getFileHashBinaries + - name: group + - name: groupAlerts + - name: groupMembers + - name: groupMemberships + - name: groupPolicy + - name: groupPolicyNames + - name: groups + - name: groupsTree + - name: inventory + - name: ipBlocking + - name: licenseInfo + - name: log4netConfigs + - name: misc + - name: openapi3.yaml + - name: organization + - name: permissions + - name: pipelineNodes + - name: plannedChangeInstances + - name: plannedChangeRule + - name: plannedChanges + - name: policyRecent + - name: policyTemplate + - name: policyTemplateAsFile + - name: policyTemplates + - name: policyTemplateVariables + - name: reParentDevices + - name: reportData + - name: reportDescription + - name: reportDifferences + - name: reportExecute + - name: reportRender + - name: reportRenderIsCached + - name: reportRenderStart + - name: reports + - name: resetAdminPassword + - name: resubmitEvents + - name: setCommentsForEvents + - name: startAgentTracker + - name: stats + - name: status + - name: submitAgentTaskResult + - name: submitAgentTaskResultData + - name: submitAgentTaskResultStream + - name: syncServiceConfigItems + - name: testAgentCredentials + - name: testAuditorConnection + - name: testFastConnection + - name: testFastCustomerConnection + - name: testServiceNowConnection + - name: testSmtpConnection + - name: testSyslogConnection + - name: timezones + - name: updatehubdetails + - name: uploadAgentUpdate + - name: uploadPolicyTemplate + - name: userDashboard + - name: userHasChangedPassword + - name: userRoles + - name: userRolesPermisions + - name: userRolesPermissions + - name: users + - name: userSettings + - name: vulnerabilityscanstatus \ No newline at end of file From 4c44340502bbcf43d7c94225ed59353460f96878 Mon Sep 17 00:00:00 2001 From: Dan Piazza <220388267+DanPiazza-Netwrix@users.noreply.github.com> Date: Thu, 14 May 2026 13:24:03 -0400 Subject: [PATCH 3/3] chore(ci): remove openapi-dedup workflow The dedup script has been removed. This workflow is no longer needed. Generated with AI Co-Authored-By: Claude Code --- .github/workflows/openapi-dedup.yml | 89 ----------------------------- 1 file changed, 89 deletions(-) delete mode 100644 .github/workflows/openapi-dedup.yml diff --git a/.github/workflows/openapi-dedup.yml b/.github/workflows/openapi-dedup.yml deleted file mode 100644 index 30a6cfd20d..0000000000 --- a/.github/workflows/openapi-dedup.yml +++ /dev/null @@ -1,89 +0,0 @@ -name: OpenAPI Method Dedup - -on: - pull_request: - types: [opened, synchronize] - branches: - - dev - paths: - - 'static/openapi/**.yaml' - - 'static/openapi/**.yml' - -concurrency: - group: openapi-dedup-${{ github.event.pull_request.number }} - -jobs: - dedup: - runs-on: ubuntu-latest - permissions: - contents: write - pull-requests: read - steps: - - name: Check if triggered by this workflow's own commit - id: bot-check - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - COMMIT=$(gh api repos/${{ github.repository }}/commits/${{ github.event.pull_request.head.sha }} \ - --jq '{author: .commit.author.name, message: .commit.message}') - MESSAGE=$(echo "$COMMIT" | jq -r '.message') - if echo "$MESSAGE" | grep -qE '^chore\(openapi\): deduplicate'; then - echo "Skipping: commit is from openapi-dedup workflow" - echo "skip=true" >> "$GITHUB_OUTPUT" - else - echo "skip=false" >> "$GITHUB_OUTPUT" - fi - - - name: Checkout PR branch - if: steps.bot-check.outputs.skip != 'true' - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.ref }} - token: ${{ secrets.VALE_TOKEN }} - - - name: Configure git identity - if: steps.bot-check.outputs.skip != 'true' - run: | - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - - - name: Set up Node.js - if: steps.bot-check.outputs.skip != 'true' - uses: actions/setup-node@v4 - with: - node-version: '22' - cache: 'npm' - - - name: Install dependencies - if: steps.bot-check.outputs.skip != 'true' - run: npm ci --ignore-scripts - - - name: Run deduplication - id: dedup - if: steps.bot-check.outputs.skip != 'true' - run: | - OUTPUT=$(node scripts/deduplicate-openapi-methods.mjs) - echo "$OUTPUT" - if echo "$OUTPUT" | grep -q 'already clean'; then - echo "changed=false" >> "$GITHUB_OUTPUT" - else - echo "changed=true" >> "$GITHUB_OUTPUT" - echo "summary=$OUTPUT" >> "$GITHUB_OUTPUT" - fi - - - name: Commit and push deduplicated spec - if: steps.bot-check.outputs.skip != 'true' && steps.dedup.outputs.changed == 'true' - env: - VALE_TOKEN: ${{ secrets.VALE_TOKEN }} - run: | - git add static/openapi/ - git commit -m "chore(openapi): deduplicate HTTP methods in Change Tracker Hub spec - - ${{ steps.dedup.outputs.summary }} - - Generated with AI - - Co-Authored-By: Claude Code " - - git remote set-url origin "https://x-access-token:${VALE_TOKEN}@github.com/${{ github.repository }}.git" - git push