From 07ee35b0ca4365995442e45815e509feb36806e0 Mon Sep 17 00:00:00 2001 From: Sean Smith Date: Sat, 18 Aug 2018 17:32:18 -0400 Subject: [PATCH] Add initial datadog widget --- Gopkg.lock | 17 + Gopkg.toml | 5 + _site/content/modules/datadog.md | 59 + _site/static/imgs/modules/datadog_error.png | Bin 0 -> 27924 bytes _site/static/imgs/modules/datadog_ok.png | Bin 0 -> 30143 bytes datadog/client.go | 34 + datadog/widget.go | 73 + main.go | 3 + vendor/github.com/cenkalti/backoff/.gitignore | 22 + .../github.com/cenkalti/backoff/.travis.yml | 10 + vendor/github.com/cenkalti/backoff/LICENSE | 20 + vendor/github.com/cenkalti/backoff/README.md | 30 + vendor/github.com/cenkalti/backoff/backoff.go | 66 + vendor/github.com/cenkalti/backoff/context.go | 60 + .../cenkalti/backoff/exponential.go | 158 + vendor/github.com/cenkalti/backoff/retry.go | 78 + vendor/github.com/cenkalti/backoff/ticker.go | 84 + vendor/github.com/cenkalti/backoff/tries.go | 35 + .../zorkian/go-datadog-api/.gitignore | 2 + .../zorkian/go-datadog-api/.travis.yml | 26 + .../github.com/zorkian/go-datadog-api/LICENSE | 30 + .../zorkian/go-datadog-api/Makefile | 40 + .../zorkian/go-datadog-api/README.md | 120 + .../zorkian/go-datadog-api/alerts.go | 82 + .../zorkian/go-datadog-api/checks.go | 25 + .../zorkian/go-datadog-api/client.go | 100 + .../zorkian/go-datadog-api/comments.go | 72 + .../zorkian/go-datadog-api/dashboard_lists.go | 137 + .../zorkian/go-datadog-api/dashboards.go | 182 + .../go-datadog-api/datadog-accessors.go | 13375 ++++++++++++++++ .../zorkian/go-datadog-api/downtimes.go | 81 + .../zorkian/go-datadog-api/events.go | 87 + .../zorkian/go-datadog-api/generate.go | 3 + .../zorkian/go-datadog-api/helpers.go | 67 + .../zorkian/go-datadog-api/hosts.go | 33 + .../zorkian/go-datadog-api/integrations.go | 178 + .../zorkian/go-datadog-api/metric_metadata.go | 39 + .../zorkian/go-datadog-api/monitors.go | 177 + .../zorkian/go-datadog-api/request.go | 194 + .../zorkian/go-datadog-api/screen_widgets.go | 287 + .../zorkian/go-datadog-api/screenboards.go | 116 + .../zorkian/go-datadog-api/search.go | 35 + .../zorkian/go-datadog-api/series.go | 91 + .../zorkian/go-datadog-api/snapshot.go | 45 + .../github.com/zorkian/go-datadog-api/tags.go | 93 + .../zorkian/go-datadog-api/users.go | 95 + 46 files changed, 16566 insertions(+) create mode 100644 _site/content/modules/datadog.md create mode 100644 _site/static/imgs/modules/datadog_error.png create mode 100644 _site/static/imgs/modules/datadog_ok.png create mode 100644 datadog/client.go create mode 100644 datadog/widget.go create mode 100644 vendor/github.com/cenkalti/backoff/.gitignore create mode 100644 vendor/github.com/cenkalti/backoff/.travis.yml create mode 100644 vendor/github.com/cenkalti/backoff/LICENSE create mode 100644 vendor/github.com/cenkalti/backoff/README.md create mode 100644 vendor/github.com/cenkalti/backoff/backoff.go create mode 100644 vendor/github.com/cenkalti/backoff/context.go create mode 100644 vendor/github.com/cenkalti/backoff/exponential.go create mode 100644 vendor/github.com/cenkalti/backoff/retry.go create mode 100644 vendor/github.com/cenkalti/backoff/ticker.go create mode 100644 vendor/github.com/cenkalti/backoff/tries.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/.gitignore create mode 100644 vendor/github.com/zorkian/go-datadog-api/.travis.yml create mode 100644 vendor/github.com/zorkian/go-datadog-api/LICENSE create mode 100644 vendor/github.com/zorkian/go-datadog-api/Makefile create mode 100644 vendor/github.com/zorkian/go-datadog-api/README.md create mode 100644 vendor/github.com/zorkian/go-datadog-api/alerts.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/checks.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/client.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/comments.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/dashboard_lists.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/dashboards.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/datadog-accessors.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/downtimes.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/events.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/generate.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/helpers.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/hosts.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/integrations.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/metric_metadata.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/monitors.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/request.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/screen_widgets.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/screenboards.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/search.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/series.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/snapshot.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/tags.go create mode 100644 vendor/github.com/zorkian/go-datadog-api/users.go diff --git a/Gopkg.lock b/Gopkg.lock index b9d83a4d..bbd50128 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -73,6 +73,14 @@ pruneopts = "UT" revision = "5f41b7c9d92de5d74bf32f4486375c7547bc8a3c" +[[projects]] + digest = "1:2209584c0f7c9b68c23374e659357ab546e1b70eec2761f03280f69a8fd23d77" + name = "github.com/cenkalti/backoff" + packages = ["."] + pruneopts = "UT" + revision = "2ea60e5f094469f9e65adb9cd103795b73ae743e" + version = "v2.0.0" + [[projects]] branch = "master" digest = "1:710109527a119c813d4fac773712dd92f449ed7c2f7b81f49822f94d290c8f72" @@ -247,6 +255,14 @@ pruneopts = "UT" revision = "7c9c2852e8f9e69a80bff4f4f1fe4cdd15eeba19" +[[projects]] + branch = "master" + digest = "1:f6f2814b88ad3dd5ca45e1e9a7a0caba1ddb1bfaf1c4173ebd991d854e1669eb" + name = "github.com/zorkian/go-datadog-api" + packages = ["."] + pruneopts = "UT" + revision = "d7b8b10db6a7eb1c1c2424b10a795a1662e80c9a" + [[projects]] branch = "master" digest = "1:d6b719875cf8091fbab38527d81d34e71f4521b9ee9ccfbd4a32cff2ac5af96e" @@ -348,6 +364,7 @@ "github.com/stretchr/testify/assert", "github.com/xanzy/go-gitlab", "github.com/yfronto/newrelic", + "github.com/zorkian/go-datadog-api", "golang.org/x/oauth2", "golang.org/x/oauth2/google", "google.golang.org/api/calendar/v3", diff --git a/Gopkg.toml b/Gopkg.toml index 5d0dae04..8f524497 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -92,3 +92,8 @@ [prune] go-tests = true unused-packages = true + + +[[constraint]] + branch = "master" + name = "github.com/zorkian/go-datadog-api" diff --git a/_site/content/modules/datadog.md b/_site/content/modules/datadog.md new file mode 100644 index 00000000..dff1a4a9 --- /dev/null +++ b/_site/content/modules/datadog.md @@ -0,0 +1,59 @@ +--- +title: "Datadog" +date: 2018-08-18T00:00:00Z +draft: false +weight: 160 +--- + +newrelic screenshot + +Connects to the Datadog API and displays alerting modules + +## Source Code + +```bash +wtf/datadog/ +``` + +## Configuration + +```yaml +datadog: + apiKey: "" + applicationKey: "" + enabled: true + position: + top: 4 + left: 3 + height: 1 + width: 2 + monitors: + tags: + - "team:ops" +``` + +### Attributes + +`apiKey`
+Value: Your Datadog API key. + +`applicationKey`
+The integer ID of the New Relic application you wish to report on.
+Value: Your Datadog Application key. + +`monitors`
+Configuration for the monitors functionality. + +`tags`
+Array of tags you want to query monitors by. + +`enabled`
+Determines whether or not this module is executed and if its data displayed onscreen.
+Values: `true`, `false`. + +`position`
+Defines where in the grid this module's widget will be displayed.
+ +`refreshInterval`
+How often, in seconds, this module will update its data.
+Values: A positive integer, `0..n`. diff --git a/_site/static/imgs/modules/datadog_error.png b/_site/static/imgs/modules/datadog_error.png new file mode 100644 index 0000000000000000000000000000000000000000..38e5db7663de57fee4dce1e6f27e08540fbcb5e8 GIT binary patch literal 27924 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 Hdh&k&viF0o literal 0 HcmV?d00001 diff --git a/_site/static/imgs/modules/datadog_ok.png b/_site/static/imgs/modules/datadog_ok.png new file mode 100644 index 0000000000000000000000000000000000000000..8596f7fb28a1e2ebc5db4e4c608547e6c592833f GIT binary patch literal 30143 zcmZU31ymi&vgqItG`L%E4FuPXyK8WFhv2etcMTpixI=IV8VK$l+}-_?bMCwEt@WqZ z?CI(0>YA>qDc#|U@)F4J@ZSLdfGi~`stf>-ptpV=JnY+VNw`xA03gv=iijvmiHMLY zI@z09+L!`>WO#BaoND4PZ166#l%%AEzhXhqDm3k6;T!;|3`0PMK#_!t9uPtFS=E5? zdzgWkhA5^kB55SD*Jo%iKTSoY*}eeeWKJnSm;bc=@`U^HRsUqU+4*$j$=M80j5drE zUHFaAsJ0Z#q^$n* z$>gcWd@)RcgV#6+t9ek2R+99+X`T6V&i36}LLwtkb`K^8ojxHp{qSe?rt|PFrC|D|)N_muHU`7N7bppIcxzZ(AXk-%mj<#{zy!n4Rdp+Fm0B0=X8@9Q zY(L_K=6OU7jRqgT>!2V{A~iw`fmx%bKbU6_k6!UAGX? z^GVA<9rV8mnck%fm33&+w<>lV&pwGpXyKZw3vo*&wm?wrS|l6;<34 z<-KE%@#DoGBbBX4C?!4FHgXP~Pl-gt`C$-E5b>mF&=6E{KT}|f0%b`pPHhi@J2Cmm zz{tI%P-ozkI5T(Agfb1UjeMB*lWa{nCu!M;}b(}K@ zdN8E3@IvWl`~rHn@%Q&nY`k#&>Bt%7r_@9$Uo<6!99tx1UMgT?LLH zxDD`!Y(AJNxC`%5@KNY|aCvVhhk+U47nX_8AIOAjJgDeuxn>@!4XR>t2TqWmMb@~W z=Ac~fG`SK5PY`!q{TEM-lVePtDpEu`22o6s%H?i8Xg}lnM?^;qhv9rK?5GMRudI)^ zf{D3$N|X5GcD?!2tv5Dh9^FRJ6_z(9t4FJbs;f7~Xk=dOs5(kww%_=E5jUGromc_; z>cgF-z|DAOZK)LD0g)%60P3|r-|BC^g#mOfT{anp!9Tk!&+B$0#)~4R~-`lq=8w2i1Ak%(MB7zg4&};zYcPnT9fY0=Z1rVP6k?gyFN5tfX z2Ecs($t;G0`?G!co!J(&jz7*BR5vN1XrOx>QqfPI%XJ>CKs*B!P51~QT1|*qFkLl* z4GeFWT{SA3zq$iqCM*sJ?g#8iSHmQ-9$4TE1&I`1Sl9xdXhJLs&AAubQF!@12?cJr zs8PHL1=cT6P#EUdKn7vyc&CDQ3jxz)ogYHuHV3&2Fq(t;K%Q}PgVdNJCEuy6z*@P+ zif+>+(V)!|(R+?pkeF-eEmK ztcLngj>A7dYX?yKi={~plKv*e#Gr#;LV!ak{?jxi=Pp5kjwdRUNAPr$5dO7yp_g?7 zc7u3>#fbX+eNB!i`F?_p)M|kRdPb529aY7LV{#%&U8*mM0yMPrc(mNK!8C<52+8k~ z>5^ROh?H8&uT(9;<>DOFUJ3cXbS@Y!oGv(=5bx2OGx$JC#hS`(wC72(L&DOOh5k+v zPN^5-pFb~%E{J#p)Pg+xoeD4Xw(EvalLVF7zjI834opguTB5XM_{H1Bd_?jm7%Y72 zF|~+o@hW0m16*@%gn}!Ls(vc3m;Tl$QMXiWF27JtF1M;YsNzv;05u4I={%sE(POVo z57x@X*S5{pYFH#|Ah3EqaQPx}ZE;O_&3c`6usfY&8OO%J7Qp@kUkqQHUEYE(&)7x9 zlQc_2Uvy1eQ0#P;!b;1kmhBU}47;0kqxFrYrA73N^mKZOTE!R5vPgdx23!Vl4r6X( zl1-k?#76(dP7VdH64$^R)8kv7e3vH|cOFU}FPF-F?@7}G*h91Z%4yrl_TtdPg+00P zjBia!r%8IJG$TrS`CR$Z;>QGEv`J=~CSqrDDmv9(^L#t~zX^T!A2i77MhMgs3Hg>| zShQ}{^C5&^+~otw2mcAH{Cx4TuUfKxW*l`19tjKP<@SVT4D72$%XWMQMwST%$`-W) zTiLXI(<^K%E)A9$mN{SJ7u@T(&92RwMt<#_?08=`?3n*v)7I3Y_{`8~QR{A2V*IO? zp}M@O&04JPqG70^w5G*MuHLn2w06~C#V~O3$NZUXsV&n&USnk=1N_hH*4FHEOH_tz$F3YL_l~ zHW8eppRk;mo|yB)6GISR@@w%6c(!=%c${25Ee(&-4_g<{)j6hYx^Ff{du`cnjNGhl ztZesONnI}-O>J8r4c}Cp`|Oz?3|udr+)l483QqZ@z77MSfMZuT_|`w$-x(?v#!%>+ z5T(#@H-0xlw_5kDh^#QH@PWvKu&%IqC^6!PAhDndq}Fa$14qp-AHKhL ze6RK%^@A;WUp(XH#QFNBMsz2EDKTY~RRrur`JURutr3H0|H_xAmngjFP zHRc<8j#C@1{q2#cVfw^=)ZKJK>EkKi)48~7n9hBa6_q`d=XzN%cIDgR%2OF6?c~V{ zDT-_q_H!`#EJq4XelaCRQtRg!ahvWWIjdY3nJMt|$$i21T6|Fzwo*PAogO=~a7Atv zj81M8sEEZF{5Z?vmMJ{?)$NN zv3_FBX*^UeD^=?0DZW_D+^I#EeJztw@6`QdJJK9cgOxF>JS#otswS?^QT0i?$!KMl z&UdEa0DQoIcs<9g`|1nj*0UY$OF+PZXG6DgWm#u%Il}l&8{eA2imnm8X~*8DmeFzP z>)Ntk*-~XwyUSy$mZ9xj%sdhG;qt+O>%pmxUhJ&Qp_i-N>P!u56@6vfe@Jfp zrW^5_)JbM}+MeLIB`4y$^I;?&W5Z*viO0BJzT0XoWno|_=?0;shBH-W(qj= zzy6-6TQ%1n^T_6PS$+1Nf|)~%#?fUWewx}I3p}noj!s=>Vs~?QsdtGvE zuNIwF6hU}ThjYW_9^P24SUtWJzL#a)tDu{LjgpC}7IXPAEiYkDo@@or)o0-=qui!D z=IhSc&U#OeKlYuS%r|mJhrX1)>~}3k(I**;O~z}D*8^8;eyNvse|&zyt)TJ>wD|E| z((X@9`QznC<BC%g~YY7@Z3 z9nPX5fC6lwBMc4>jspqBcL6rA9j2>Br!Py9s+M=p%nR>}ODDA8P$z^An+m)k0QlT_-nzD? zE{3G;wl;RoJnsDD|IFZd>;D~QCMW%8iiVsffLkDJeS>8`DQ}fp?^&qVQ;|6;Op{?E4FHpu+< z2{Q}RN9O;o{RYbSca%rb(%sZXQ`FMd)Xw=0hX6Y#2j4&Q|Gy{yi}C+Je*Rxb77o_` z3;BPZ{0EYc`R@k)&xZb`)<2_f>g6i89@-J)N4yCt~ z=0DfBzUYH~MqUB{fB-2`Ays#XBOe4Xg;?@US!-$8X?EmSVzfBJGXotZ(Qa#<7$QaW zZCI>sD70h}KWH(bW~FW@=%hY<^=YgsQ%8`fxWt5-P^z&QG`Cq=;@6JYgUZWSJyCHp z6Lm8+^)I(BW3oZYcmurTdb2Lx*BfG@Ta^4>>hL8xv??8%x%8E-36Z?^==ooTZ$GH~ zVK488{NKhK3`4F4?8(3a$C&n`E|Z#F|82RJh^i2|jlswDC(U2v5Hs!iO&C~K$f367 zW;`%yeyoSY@k4x;l$I_^z>FODu3VyM$0rf5$tGH*>8Y8j>9cr}Z6{6D(>d1B;Y+uL zNcQlH;`%xivmlE za5E4`s$dQ~78=FByQ>O&T|V^ul)q-0nI24(zXs%{Gk3G$|3ehn*1sePkouH@6KHHD zP1ywZoif8e^h1byhGTtlac=NusDH8S+YkcBY2j-#QW}Q0llDN|;dVwq4fw5fMQL}z zg4&Qf6xoP#&#+?^8yV>b2gJp7(Sn~T7aG;q8qY4i4E;-uFA&pQfK!b^O|_T*S1aQg zl1>QFjQS_`f2HMm04dg5PjF7DM@sBZ=QQkPSeEtWAFADJU9B%60m?UQ3dRs`&7a8lZ3n`O z+$#y#;QWZp-5=>v=x0nd;YDs7Qg{>ad@}Q+qrh-R@4dho2Mk1|6;RL>>z1HydVOVO z)ksJ&rd>63uuv|*tRKf`-%eLntRY{wP3lp*3gqq_wH&mS?Wa9!edn5xc)brFwvcl+ zLQ4J106UAnSUav3U_nyuN$!t7csfFh$(Ferky(hD&p_SdsP7`-w81YZqrO|Mk|8m({}dRft(e5|SH&#}u6hBNr|xm9HPF0pmI1_VPc#ovLLlDLVK#nF?D=kN2Z&t0 zfZU}KjyuIFQkuc9#hbZ}iUCkzJS{w1u8s^}^X^e&g4)h&zB0pe$Drj#LSw3IX&95}1<~i=2ckK$iOUisIgrTHy z{mw=HJ}VTs=*2S{+Sq@k7c#zGC-oaXfVtB?hXNLNa6t^nFJ=VNy;OyMD-eRHLntfT zXd-67lTs%wr@)xHQ@2}dJiuE#5)suS$r!249624_O zEMi9AevXuAD51VQ@W?BH%w@dIRG{`bXLc>t^IF_?S>3nKqhy&4~&{ zXNFMzE7fxTO;KyVDeCFoG8}4+toB-Uri+LWekF#B zEJ!p`z>zR6I{+e1UX8g5DyG_CfL`U-*=#5+z1}ra&t~CQl-2#X^^-YSfOOWOFP6BV z$J5<1%3_#5^`}g|`qpu*>A;jJiC~J}d4k>0h7G;EsXLl8hNiff0Lulm&-w2$4xG2@s`8M*eSOn7{!O% zuIaxz{&zVH1E5OQLAeYq6#B_kG47K{KyIT$Lg07zpK1th7L*(F?{az@pVHu?X5IX2 zM1qAr`v6;mD%`sZd(irkdeh1BaI6&4_8flZ9TU&K#=b7kf^l6B+lzS!vh|87>CK5_gWF+wxL1sw3c5o zJ5WFNlIP*b67D^=yEO$TP)g{=y>cJV zIr&qIP+?h0!f&gHF2dpAcV!)2&)0Xx{#n1@^n0+op}+Q@uNouy{!Vloxj#!*?3k$C zQ7Yw&5;23DBuch*_1lO#0z}X@xp3oExPSs6JfUFd0aT#Z-kZZz~A;B-5s?P_9eo|ru^ zE$1TT+pm6S?61l5f({MhLpTH!wEOd>7wh7%Z%kkc)=ACZZ`NJBd$>18Ekj6QGfY}^ zVs3xgvOX>ixu%uhYe)3_a`vg?7|+v?RQPM9eEQsq2;*I!>S_ad4%lkMBBUWd1b>@+SU++59r}eAnl+KkpM3 zV0La#%m{$<$6t+2Lr`c7Dxp8}A(vl+z2A2Ya6=X47uSVTe)JJW`Sk6O&DW!oN3g7v zr)ak~f7(N=a4b}QGxfIY^1ZPJ3xDy#jGzh-hSCvq(&AbOprHUf*>;cH&Gl6c3`v9@ z5ie_4BzfA$x<+uu;fJ1XahKh@lgFtYfjbz?#eF4(l(gmjBpy0<^f(J9SYF_FW6NT% zR$dzEeMy)OmF;SSXw7U zi%#~KFjuUqFj1pDQ<*mzLDoDP#%v6-u%meI@s^KmTh~B{m{btBs?u1N+a+40f+eEo z6VvD25V;abMOa>1E_3tX251HDIeURD-A}OJKl{LCJ=?aN1f^>7FGY}^V3Y;?D0B6< z9d8#DdsreepIB&m?qTQ23*7IY(J#`d|HHsoFmkIeOs#)SU?r`Ov9z|+dEnsbQ9OOT zpGN!lOO?%sVa@j|_99s&q+xODFELl;uwRyab$_tL$0yE<5zG4PCHo_>6QmFe7ZZ07 zLIhCZy@3VQfIR-tKCF(Jp#VfKt3)mjzTbE8+3z*cLBlc!OdhdFv*NVIvz zE!r_nm4|cy^zFQ3yk%9 z%~9F260aX^OKYF?Sp!W=Eg)KZs6=98@5yoXOZ)G*P9>jG4wyA13d~;ltEfK!i9+ zIWGD?hl<56VM;CXglWmIw z89psqOGVfDs2PM40uKRRjlD<5pt55>CE3e2*K<$F_S^BmL;tqGs;UkJS|aXDRTr#h z$JA!bGqE|jOT5C!b=KtADj=6M3iFDi2BlgqTa~d_iZ9mMewHpW`3*Cit(saY+`Nau zWF?oIwPtL*^hfPf?J4pAE0x=^b+zb1==gX3)ZWu~4KZHhtGd2AZE51xnh zdlz+r-;&pk3ubbXiP7~sTA+tDX5^9Jyyu0+Yx8H#`N0M6tAZqoXnkT(I(83Z^?4GQ zbSgUBVxD4sy%;Nh{yB|D3efW*O&N*t2`5#|CJJ5rbq_%bbAUfFhXgoz8an;;>8I@c zD+Bkg=@)}O6fpswue7IC)!HD4Tysu734&SsIJhUZ*Y=VX4P@Y&zb576rN_BpU!;DN z66jqe>2S&mBQ@C$S5o0>Ds(Wkga9cw1mo(_px-Rle`(a#BW*sE(F=Naio1xb@bTk@ z?fG(OzpH-<)0yNnqDH>5Y0<uhrQYf1)((-_JIMPDO;S+uPUBBw0<=M({UYER~D!%CVzt!vu?;PGJDTL zXi#`}=M+C`1?rLLmJ1?)_0Gc`{16T?-iXs=C`{B7oSycv?NT(ChV5trkOZP!@BwpS z8(VXg@B8ede|oIwu}!_j7**J3`?Z%bk}O9QmwC$N_xj*En+Q*y=|rgYC%RYjoJt5U z2uZJX5J_H|x8JW9;<^M2vo^K=3bPQed1hSXZTxk*pA<8HH=B99c?E8lBrR6t9LbJZF7S*7(Il{z3vvWB+e_CnY4dv#^!>M()iH72HB zcJ;NDVDA{G<4v(cfeG`|Gi$nZs=HJn#&2+%5Ec5N<@vD^GXywi@c%HOfS*Dt6%Kum zr&M+=!X0Fj!nXaX;XxA6*P7CVrCM6|<1)(|$X#Z}*aTfP0&Nc1RG=6XbN`f2iqP7M1YZkmt7XL|v(UV9>HVj@giYHLZ0R zR#CR7dvGD*T6*X9wSA;x*oIQ~%kJ(T@+GBYqGzTvSio)9eveUI+hlXh@n(WOq4#0y zQ@C9>p5(=JIg2M+)1aT3+~tGLPr2^D2?JL~fbimBd%s%7pxAjY?2Lj26%C41-Z(#h z!<&>vFbFRJ0%TY|4IM2IZ+(<)rJ(d-y6zqDOYjwYG7g#n>=+~|osPorLns;Rn^A4{ zlc}zYY@8kcMi8%2xjS=JPp%A(R1ywEY(+42t~&;ZqJ=QKE7bvX;}M7$T8cq z+jWk+GDd~4j-~KauLojn8Pr`p;m|fa{W<@@_isAIDDW-HGX6zyxY4`%QPMNp*Kq)K zU-0FMjgkAzf#>P0X}o(l?+RR4_t}S9rzw5Zqk*R?l;-y6bkF~q$Yt;wy+t<6pXnyy zKEP3M#Vz+++qU7uY=zq-2`5_n`c~auK@(T8{(vLbmf`Gr+{l6RgTX(Fr_Rp5ABc;9 z7*f&q6Xb6?=T-(R(0RkR?8s#~tU5~Ad7!{npUvOd@-;tFC^QuB^>nH60JWgNT%g2$Y@79)GhDh0{@C&u zyHwdfQfJL#b3fc}U?dWaMaZjhKRC7QzIL!EhG;gnJkhwTcg@sypiUBX@+5Cj`Rca* z)@XdBo3FpRdxmM2iV;56{IV$Y8?_CC{*TmXO@;G`C79Zw)Ts8(e%d?!!3ZWA=>XQpp?AA@Yj34gnjp_pCOR7@KP{7vSV^+6&- zkunfqMg-HLq76huMMn*>{CO#9`32;*P+7%*pb%StH;#T+vGRz8lLVtauh7wc#~7A6 zC=vZwVW5naUAwVsmZfq2`TEI#TNtycq~H##%Cpp!a$q=rC?aS7i(a4k45Fj6gx@D( zQkEcEA3|C4>|1QDY2|O{6=M?zOTMCN5|F`hud|y1psE#ZPi^r>&WXg%_Q2V@cUJ0a zte&?EWfmS9DgCeeQ(dj^@O2kIW3li4qYl+SL0K4f=&SGtf*z51I7* zPqA>{XHcii{<^Iq4CC-`mh!w7h zkm1q<#E8&KN!P>?ibFT!=aFR?GrSSLqCUvsy`I#L*rCq$G`nq6-kgFQ;;eaBL6pyJ zlc7VZe;v)=r7&QT)i6?v>~*dF7k}F`_!mUU_}g+%bIRFOvn(jKKM@c{+3V|uEKT8f zqv=bKCf`~jQ8a5fO^qn=SFULI8z|FQZ6YB+HngZ<#r{iGuZW1D%V`KS&h^5@+yT1B z0~MEplHQ9{VKV%7xKh1DTB88WoIK=&;rgv13f|gUj==I^SJwO{Vbi{BfSBr` z9XD&1_?_q8r9^4PY@srwxp2)Lymf2JSq(+FmvhhMbzw$FeYto{$_7XZ)i)oUiYtr#rY&h);p)O&oB)^@pYhTF1$XsQgFx zHK0JU->L(LG#r1O`Xfu)P@Wx-j(@J#TE!bUH%8d@gfU6NrPTj5Az5CPnOB`1F=3?W zO}d(VMSvQ&+mMm>CMIu!f}~CA#0n_VMmU2P7cDVwB`Z$-CK&wL4P3kg?7+p2lK|tJ zL1h6&LxKpQdI`}D1}W*xCLltCa7<$#c#~gb#VbQ)zFa1yj9iV?i>P@JO8At&%1-rzwL0BN5 zks`d&ezUd9eey#l)bt?7-TrC)0!%-L+V`Kv`hTq-nYtJD+?tf?%Qv=%SEqpYhicowHd>0gy%HYwqSenJ5 zMNh;i;D-Bt6Zyx|d*?qAFwQsv)r%CRz(u=5+6IZ9rMit}Eeb)Z{}tf*p33Li51}p% zFX*Q7Y=(o|>7Dr3>3&NTX1>YUQ8P2glqA5Wn3fw&^m(zx5Tj3-mIV)alMad7ab3mC zRp&JK7lVIIGZxQz+Nug;q|}gJQsJHq9p*9p#8%%2wsoT^AP&8vT_c683+d79F8LDf zu!)#SNryJ2#iZiTc6qXrDTHsDKAXoz2xh!ZN_om?bGhJkrM&b>u)IPFjo&4_Ttto3 zC-zS-S*U=cMVi@PZgU@O9$VhyFKIFg zd=clQR8I<%&TWQa>quo)zhu|$xopawBnf^=6@D#X-#m;Kx_1vBVt+iCF+#Xdjohep z1#)Q&jdLVx9-Y|kpt7^ooPaoJs-vul4VNTYmz+8y%t6VId30yfdzpMH+Q=MrYK2>t z-n?}$SLVA)MhXJdxKJ&IVdBJM>Wq}+^uI}?cDI71_%;=CrsRH^QcADGNsN7BWOFU{ zJ>*7IE(yNCiNffMz+}|;{@jXye|!Hze}Lz=;l<%FN%iP8`#2|$fA6TcX5Pjr?*ETG zg6jc?K{9%5m59@(J+FjWfzg47yW&BqcIJvR4>}JZw_7-y<4gT`(yj z?b*dCm%t2(i{EEa8PsnosQU5<^|$|tNrjTW9TEXac~>KN5tQ3V=zcs3B6C}%TLsMf z-{$q4j3Rt(HRWa1RHrn)?R=t)za9woRm0dp0F>*h^cYiQ6&h$fA;!o0EzYQ6Dlkxh zT53y~n8lfGzHRy@ey&_&;x4)R=im50cQIH@xo7&z$G4T%;DIYi=S>CuJTNBH$?yP;vs}oNfvAZZ9CC*^S@yf@)ftY>HQVbJ?;K*F z{%QgRza#QkiJsE(A^;Lgg?mW0pXRy`dVlS=R%X%2KXOEx^k&piRyY|QB;OJ_Ew}49 zkP86#217-oL%GNw(g=(R{A9zC>bGR$#3KgQv1bz<3HY$b%wU0)dEpu)FECd!?L$L+ zsT7#H=uV&x9y||KFX)w9{<#CXYvP-+1UQTA&YY`vNZypr&*w)-Q$&1#!i8#?(L<8F zG(+epG7SFfPMW!J0}vN>p1_J{;ecNDd9aSK&Br9JZuol=vMk+2o<%$h(TjZ|jq-VK zDBY)IuC6%x^7>B)3Vto2=-5DMHQZj!PJd4St=f>GF*H=hqz5g&?WqcOh7S;w-K$_x zD16Fg`e3BmM%2}RpnLW~>;q1$GB<}5!qcadj=UL$3>bpp`oE@z%^2cO+}tLIdq3GV z1R9F)R&!WtmkU5~^|Me=iy=H*?#W{puTp*S8xTfQQz;pk8r|&4wge2$;FY2InR6D# z#&^bGjO|$d8L}EnCdpAL{svR5ocFGR5LBq-FnbQ{XJZkx?@eR>P^!`euxQ?!z9_!) z*dKtDam`|cv(?IsTdCAcBD}7@k5gh(U(uO71#ocJ#oh5qYLN16jAEezzq7nVAp-A@ zYrbXmcNT&=&=U$@WE!o~xN&J{W18<>pmLc2QXfZGyPJipp}+BAacx&U1Zk8fW(^x3 zXZV7ondq-uV>l?%Z2$bVuB}VzVovAx0Hp#bb08ia=$pd=7SV<$6id_9D4X6&%Shw7 z9^gA4)n4V#5k(OY6+(3`AY<%|i9~W21S3K4dACH;LKeH$e1H zsI3Omv~%8Uin9-<@05o0RyMToBidU7AM`6zI@5*#(#8O(e+#~9*z?H{ii9knWL$+Y z);>-g%e_xAINv#dA;n>_AGbCnXV$FbB7jHd;MCw4!7Km4mFV^NhXr^bqO&GzQbI-) zt=%swgoH-vp*;&z5Z+0f$TprZWu${Hb;QX2u;BN5fXwsOBiyz?ve{Z(H<4B$+myjg zyn^y0j4V7#PYSA0xTD{oloWq5dCH;Fo=oh_%pzGan4^3{prV z%C2z5i|-uL9o*va_oHbvs6Ku)<7b^R;6X-VWPy#)FN(u-GW*N}7AA7>lc)Q6cV$BP zOQw0UeFPzvPp1YuCN&hXR;aVLM2K;V&xz&Aei5v=`Z{%pt&Ewba*7ZD@(1{IHAiJq zc}#}qQWC4DT=bDApX3_RyusyZFMIlEzJda>>=z7{^g$F_NU6=YxK?pX$Hr(6A8a?^ zmGq0cm}B4Cv=F{c!J?K1G6!i6S z?&je(ZtF{C*X>(EAklCx6-ilO{U}n_h~d&V&5>EKY7o7hTcL+Ygvm?%{6aYxv*Eh1 z#KoGWH-Y4~m*Su5xRt*y9^iW#C2UhO0hPYks70v_dUpAkLyn zU{-!9S5n9fCIDD`p1#XV6KO1Ql#d};#UcR z(pcxOw*Do}*MFr=so)~#e^D*t9iM}QAnC4w?OZqd@!_Eg-?>7yMuy(kM8dtbS^)9r zyCdE6GD3s!V9x|ZLS0fnBP*k4O_o!WCdf>R06DYy>qat7vaQ3WJD4tQ4^D%pwI&Ja zxf$((Dv6IxRADdIe|s{&{%+r+-nPn-j^erVw%yO7I9`9SW6!(gDgB&JMvLY`{zzx@ z)S6p*Y4`f`THw3uE4N6u0+Zx?tRb85$-69+Ju5SB28GkZ1ZuDEezd+wKR^YO2lENm zZ#*qItwz3aQ&ZX>vnUk3WIjE6YMrE&UHz*IW*Mr>pmO&V!=*D4F+bbMg^9onWeGC* z#@|EcQdT52GZgugxPxB8^v?s~2YuMR$TIau!UcCM&ob7HT{3BT?!ItBgX_0hb;$!e z20xwkF!Wd1uAe&qXi#atmq5{mxhaDer5}NGXkd~^M7EnaSCVj3e3!oJAXhzeH?MJ| zZgdd)%^J)XLAC7U3%d`4erKaJOxHnrlOT@`2>rAv+xit2su+RwJTsGS+dzm`z2^<^m(h-^_#h2D*rgnFq4%w&n3)$8AxAt3a9RhHdndi zlR$tj`4H1A)5i(2V-YwWNN7jD1$fEQibbfPnhn>DQF`rOXaat`rIB0XTRgB8x4hW; zw;HPB;|f4RyWUNsDEM%^Mu||rW{hi_^+Q0cAa>PZZq3qmXX*hZyAJO#~laME2m~$2yQ@Qo&hpMIyqq{D({rN-Nk^$MGDp)g0VEFlwJpE%&AdtaS1Lr$3DNC0VlaK-s> zVJJ;RVgBUIhssZ?lV_5>dSpu;CB;rVH21H>>gtZ!v)((ZcUwj8z(xcgS7j*U*5?!N zSWn8Jz)8{zsay@-?Yc)PWiViOgmU!mZ{hk@g_@z6N8}#Bu>G#Z71?0u$3JkB#=4ou ztAAQYLr)dNx_h1n-HlEDkbN_?O?oc495wQTm~Zn~zKJOq?Q$9?*rFghW}cjbh$=@4>#qKaho$&3^|99C|_c z8Zx3%Gl$@v)rUXHko=xJONZVTKw#GM z#LT4;-;bBaKiJALaGE3*s1FX=Z6C}N^}22PRC)SktDFIuNzvRf*&=qBr}uUdmGBCw zaf1fdCd9xHV1xn~ks<=yc}Jbp<$(I~%9iJESPgLzQx-Kkch&8@ED3wA@8fPhNd4$&V27PKVa)aek=$z@n8H$ z8*&@@>kqhjWI=JgRKepd?^oCbLLTNbZ(qsT&EFxq#E^Y zgW-haJI>*#EcU!cNvy=SZ?}F`>ZQK}BFOqJk3ONG{c$$l;uaAC;90o!$7W$b-ZN4g z$GS<}>d`0s=|OQX7m{`;m@>U90GE zG=Gw~V1_m63#0Qz0Ky#L516%PGT6Kzpkpn_o!oI21AKskHhfv1lo4Pq3kRBDtR6Oh zzXn~ntiQ`gq)G~Fu{H6|<2qU>Cn(0q{Z3LzeM%#wLrKUQJJpqI$Q~aROm3)sZH=fIT?*qAc5_sgb)j3GQWB27YcrRohl59=FOIzXI18k)=~5Un6vaj zKTt#k1K`dQVhYF2Wub?qiNGawt8R*%-h8$+@n#r61oQM)n|KoOS)?S8$6(=N47~dR zF+SMWljkSfIM5I2zyiQjG&1{38#gz9dJhor2bkp>cqIsf z(yWV95Vw;sVH^^?XHMhWQO`xTb0k(v*fE`oQv_^PWs=!PAaf;4MEg*ql}AIc)7%yI z^R`~b(+4Ieu;7_ylZHBipg>9t{@lfQ#y{OLSJMdoL>qeW8EQ*;(DVk4V(_Qbws}MS zsrwvfh^Hrjg07y(9~mQ$S#qV#P*`9i|5P3_W=OdhWasWwUC$OVPbS|27j~?CcNT`* zO8Dsky0w6zb*l=$2!U7MwbPLapi=-`+*-Hb=R1&V_(){bW=!oVV?HQmkI@ zHbP6QK4cQwRlx~jf($}31Czch|{87S@S z5XyR=Ep)9h2SlvS04VteT~kI6ccdyQuYh%Cn%4A6=+JsrUe=%V|D1csNEB ztwswM?_~v_C?$q_rXPfkYKy=Ib-hxJTa>#P%XLHTN)fX^3paD%$kL=-yo5B{c^vd< zI&LC6_DAeAYwUR<0L=@0r(t+`lch3c=sd~lp_EZ*s*0$w|y&l^o z1l>MN; zOilV3BB~~~+uD%PpV7mF*48~4Y4$kCEg$kUM1RsBOadGPYgj<*k=Z+;=uPue@FWxb zhVBRU8P0y}!;#Hyl#t?j489Y$bMY=$Cb>;0UcZ0vy~fqmRSCwjW%HC3Om@)B=WN(g znZ9?SkAD8qG9qI=^iLVV#D4_=c;5#4YEKSUUz%kaiTM-&fSn$HesZYKCVq_s zXwE?~upI-uMiliW4?G^FrZrN)m7MGbst`ud+13b2=9o^@rQJ;mq6GS&JAif<(%_sn z-CK2uU~rE6aJ|jYr@h@8W-#m}W>Zy#pRDFjS)EZ0ZRSDjf~t6=0U!5rQcxW+SzPd) zm4iWLhdz3rel3c!x>F-oA?s7&?~z>kXUi&G6I8aA~k3H;1pH4t>=o~vivc>&;v9poH#T|V+uF!}3`siFdi_qKULq;1gy~0>z z@|Larc!)jU4xmxJx4x$fFooWYB1Hg;S3{?CqvJA{i8}vie$+Xwq`7a|p#lPmMS96g zO6D$SE>wq&J^}Dfo!m6wsI=U3GB8>SS#6FgPMNT0GMwZE3ka>Hn>xk!29Csa>U$x> zjxlO@`jH1_jhDEi#Mg+y>N};=$=F&*6eO?>>Ufnw>Zv@u*6c7J)3f@k2ZC%?P0s@? zn~y)*!$}T(zxPP zkqUDs%8h)K%-r=G2%LpBp-jUo_G>d;xgvwV7R4pH^fZlVY z32R3`O*K9!s$KdPTDz>KsX=x3(}JDbRXm+wegv&zIZ|A&B0v#S#$Z%5R;e0p@M3F_ zr5nSEC}psm$jIoS5)y=xV;pKF;OL76l^bg`H}ej`)9A-<*FRcE4Rwma0?G5WVBq0r)Wp6<*m44r+Ny5e`lzqa@6$3fBo+Ahklw!@H!MT-BLpdQfE66PbfOjj zk71AhN1TXi&&^Ns=sS}%33IBMdmgG+q&InT0j{fxSpMXkQooNCCCYf#?^fUA!`z}( zHC&!!RR}Z^oR2T>UlVgzSU_CHu%W0IhG6n@JBHr;AE@|ALcc!5?#YOzS#)u_7xv+F z*G_E(3kRq7*!SXvWKQGLmd= z$~%~6g$^FFfas{GZnSLXRtauk#caI7`{xEtahYlMA9vGye&~-mU_*>r6$rD5#dfhy zk~!gpCzlnLfBe%`7Rm2^vIWK?DrmNBqYRa}8gSldNacyesGeC5j*g1m4#LaV(BE#T zNb+5vNQPu~?Yp3G-L6SS1}?P5lA>XD!eCq_fZk4~smi4dB2pC(ZJY*jG_AtBe%9^x zgPQX(2q(7lFE3_a*6D}HT*2pfJo`ui6?k`=iRlR=3b4Y77#M(vaxsdPD+RFeDVn^q zzdQ6UQ8#>Z?52eZ*^UM+XD}9MTm-yn~tv+|>)ws7GeBl-H328F} zXmiwR(x>xfhz8j`^@wcLMejVj;mAD^QHz~M_h6$kOaP z-sKSsu$)V9jF?nN0d!N!|yfx%-*pa z{NOS6tLgzm3F_MYYT+DM+29#jSP@O0Yn&SIlw^)5{zb==O;>4Q=KUMTEK0VR8U}pT zlIwli17F@D@mztB$NEo!o_86tl?sqne(=Og{3*kG?@V+GHZ~x%xPx(b@w`LD@NMux zJ{L$o6nM-3M-T-glvoYmz8L&`RPu5B{^9es`vQIV>;G%-tG}ZB-gciEy1S%75T!&? zawrMuZs~52j-e3{5Tsi{y1ToP?hfge27xnt{J!h`zH!$12hQRb)-0Zfy|4S)_rCTW zdw5QjW}ZJx;MLN_RtRK_C{rAMGAhG6OdBWt>PA@3s*WgHbj^oz;2H6!^I26qqW)BpkWstnb4EV|g{i;P;lr|B* zWOnvE(kAy1X&n&XzeUx3XnJrVb69Q3Q$a#{PkH!lt+Ak)v!SG$2g$tXl`V_Z22p$L z)?CF%!}e9}I<`bJ(GmZLd^Wceu2Z{4i-=cI)WqMoVUy*16lG2gNTZeVd)fn$hXnEf6 z9y!F6q4|xkNGg&+zm!fT@*vH~LDg|Qa3NpTa;FM_;%xg~WJYvE*uhzJwX-hO&e5oGTB4tyd>bR*) znPHo-`Y<(F%30whH^B7%>L89l*0;w&{aL&TA6uCslhOM4>cB?*=*s?&DLFqjcMUXg zB5BYU9HyxUf|U=4x^?2mv!`@wt1BnCP21?pUoQe)R-inlQ~vS={Zp09X0DYZ> zg->sxY=$Pg$x?Pzq{R}if|#!J-u3>W{^bG#Nn!dyE|W7VxWeW-F4Uw`u`~A9&lq80svjEBNN(TJC85-9TmWO>ky-7 zB_^kJt3-zX0SDB0AJjw&P!F3_QL)zHD}POPZ&EsNBqA>}v>WJ>=4jYe^pMuGGOp!{ zO>zQ|)A8k+sy3Gnb9!=F13pLgkyff|SB^xMV7l3S>nP*^$;(p!GS+YX+hC1gb6il` zCe}-M46JoQT1G&77gmogtem9)NWN0uB4r+LJR@6Ae25?>b`wRtMo909L;KWuiXdWN zCOuq%2TjDH{D7IH0cxRL^cwrnr@a(McA?TH7I*PtWI8tnC#Tx{N9Mx zVPzJqTWrtO*z#|V^jYnHEuJt0QFT>*#W|z44H!YiQV0@23pF9>#*IwXIeE$c`N|BH z3=t?leHD8132vvWEHH;KORU;v&iGjy{Gd?;;P{rwyA3b<1v%hgt;7P6kvj)9JNm^}X$rdQ0ulxlCdDvJ1<;jfY@p{Qhv`y=MPR{ zj~DMl@BPfo|D+hLSIFE5wBf2twy>S-X605xr4zYwgfeTn1WTs`<7$#7VNG%m-Rw^; z1J)UqR15iK41&I@(`k~q4+YJSf5|C^Wo#J?<=k>dPfkKX5I3w{LZ(BvcC6NnOp+-d zSLBKwmf}yT3$#YuAp`IXV})#dt}d=3&q`$4;*Y+x<0Kf90~i?S1}PEzRMFz0Ifa{S zVI~eGie#J+W|Pzqj^M^VmEUj-LkWwNNWwMi=u{`F_Lc_jx?@{s8;ZZLHA@B1i(}g5 zu?O8(ArsP#&O?mA#+{}M-H0%bjB8Bxzsoxr4Qs}lmJCd;7;&WJS zfnsN8CnC`PdycE?Ax~4z7w>NRhU{tiG_@a%pavg6W)!dA4lWJZRR{Xz)H zu60Te$rZbetB;ILkeeQmZE5=s%qfZtxb@C)%esl6WTFr>FP0)gvkk5^>YAy zR#M7be@(0jGqD&p$FbV0b@U`bAd@+bWWMGjX_L@z52OuH3@eotf{=PMCOMl5r(@9b zL_q*Q3%;iE1$IXF!s*-BS}O=Wd&vlpmL-WCK|gj`g*k0XH9hRKf~x_HSDyO>tyd)R za;NUQ0Rzh(-N)XyVX?_Lu(<0#O*F8iC;^ZM#g6lF^Q);^L%z59o#&Ch7l9<% z0-ZyGgwC~-h)H!(i?1Cj)`h!zJ9sG~09>}rW1OhaKlHycOLb|hV0VdlRnI$K zoT9n=C|L^ZKG+leUN?@YbXh93BEfY4Ul zSf2N$@JNR?Ls4UwM0CJ9h!`u{>vJUvboQ)McsA9|Rh^>oLQKh)N)y&DM&%t-BZesW zEK5~n?{v~i-SK)3xp=*>SGiQTKMCdD2@NP$A3NI|M=IUEsY8E|FSUAgJoQO=9w%?b zdYux{623|FP1W<%FtsjsbN5tVwJuF9M|YBq0Cd4H8b1>=Jr7Lg(j%a011hLGjU5;O9WA&@*K;<&hNEgQMlh+mSf^02~Gt-pV_Q(!Maq(MEA>ntFP{6 z<3b65!doFR(i;6-{T=)qw>RRuGRbd9pcl`N^3Z-VqTD;XFzw_-I^!v;AT(-zn0-}Z zW3byFDPEN)x;#QOTkQDdodlwVy*XJe^7MNi-0yVni|3e3x?-FKZdYAe9gvib&P?&u z{f#plIp6Q9Y`B!rdCu4}PP_(2GeHpQ5A0jXvOvV`TYBoZRGHT|oqL%Y_T4+0Gz2TW5Kk*MWNNcla5n~?Ch42fHOWtJd9 zk!Tt(rjkUkhZ2%a%lLb0C!HY9iNsWbsSfCl{xO1@`!`g#yCpLp_ilEl@t(`iI(OcGZgRh znH7D#gk$`B$i_hs9cbhHaN%6RhNWcvrpAdx_`<-D?yj#V11owD>Cl zWS(Eq1mQ2c1y@^MSR8JUjc;VYX5IQNX3^BfKNPt)eMnm08Jfv zdTo1UM%vB*0Khjq-32fc;)l~qeJNBQyG3E;oG`ACVz2%c4f!z&Io;iTU2? z8DP?29#v8`Yq3*-)jNofR+o-Ibh7Tl>ucwp+CaqoZQA%Sr$`HuX@nEsv3JsVM=%bj zlAg&-s#ldT@HIk4g8O4zN;0;D%xVVF!%x*RQME|U5K8v%Jlvo2wJrM7m)6I{yBBsU zEf@1KwI)?Dt_SF5-*U^*et(-m*TC>oyD3m>{SO9r{|c;m?`DCnt|qjw{MwC-#6eS* z=yTf-o;MPYFPGTtKu4=#(Z0yk#^P>~(i-V&Bpxr?s6&p>a)E|a67S$6@9UtwVQtPY zu`4Ij(uQj^uhv)ORv?rDLIhaYwgv(uFlZ{>VI_fN@cnwk3%as`w9_E2sKQX=TeX0J_9iy<6I_K{ID-Qpi$b093NZY*-aqr+*$a zbx%&b;e_B7_&)o>ZmX%uswY)W2rP4Xwx!_d6yyy}zzQg3Ya;!ZUT>Gb+yxCA46Ut| zo^jJehzU<11HAWj%8Ufo$3sMClOq(FpOr&FZvcjKKFf&Lz&xzNR6GF{4yv=2=oF-j z1V~M6u?gEb$c~EHoFyoz_Xz3FV8FkboFmC;Z)cnF+|vqlOL>hmmIYuNlAYU(U2h!1 zn>9=ho3{(tE|(J$S`%96chWyAFEna}yIDd#;4)I)dAR>-e zx<$IRNMl4qW+{2cBFYK$`N&VCpg_4`#iV0X2>&r{3}B6wA2Zz(M9RpaJaZkijR-!F z&XA8~wao+xIJ3-4hkG{WmqeM?0+8kYkUS%5!<=6ahCg@GnI7h&u&`*BorZcx=q+OB zRKKuSpp)fg~ta^WY=imJ!y>sq8WD&{xB?q)FI z^T?|d5T!OeXkRN&c+h3qG@t0Pkwe#R`b@}rRPZQJ*|>=?p|~e3qc&~#^5gu$ho06_ z*~|9G+eTKo2!)kPQ1YaGz=7p=if5is5J{A5E*bzjkNk{2hTZaAwQyHWK8Bh6`pe`y zi`L^9G(bSsb@{Fr!gucryV&IMaf!(Z_6tq&lNUQo)3)2_i|dU#avh90yv#WqLe!)Z zfK;6E3P&dZ?n&}x0aTKg3x|S;m9zYapMg05g^Q1rDk<&x{;ox>w(W||Qt@E=H?eZJ zK2b#)x`MY7kXnrpiwg0GITh0{gEKydZp;)UtX(oOH8F9u z1JT3T1{}}Y?+*naj(SG(wh3Kf1Uxs>r(puuBR-R@A(e&^YVi0AaD)ZeTk8Y;;sZ)6B0TL+Z^0fDcZ=eJvEoY-UMG>XxCY4?x|!L+?;vc^afzUI_Fb&*W(Lq3y;W! ztD~o7Yc`fU33L{#ZE9{lSuF4hfqRO-``|tMOsbvYxt$c07GS23ykJY~W}e!v>zl0I zfZ8jenwZB4O{sJ;*P=w273A?NW>S_^$~*;xwzqG$o8UuU@Ii#O*7l-SHZ(HsEW9hG z;Qo;Qgxqa`OOj3Lq=aog(r?F0vl4=HreXk{=m(RPfiy&Dpsdik%%_&HlawvZ6&) zNGvPRaolu=$T9RH^mlY|$Cxm|wM0uXan|#L3q5#fUX8`90B<18_rbi!PzBF@tu13E zf%13P8-4B#RZhr!blXv*ibT{mX$bwdX}eXoS)BGiSvBVaHq!ikZVuc+-CGQP%g|3C zGtv^*5#T!IQ58+`>;F8}eExd0cSKY4E;VP+^ZK<5>vmDwL;!_PBumxE7t*faVxeOB zk{YZ9dnBS-`pXF=!v=+r*yajyLLHVfyKfooP@s!PZhiaZr^DfDZUj(~Q3AdO#ED(Jf6!gA=93w>VM;MQ}a6%kr}( z4j~=anlu~StM;mqLHHpU)S`#(9Jk*&_fk(hv& zn?Ub}2<*=}_`Ui4hbHjB?rK+4<+XMICb0=yNib z@hij<*uepy^V7Sn(^CqML{_v?Q8PPA7iH0$7BuY~vTWRm5Uj1aWB!h*spjtqnZeEB z1oMY)@S^yOPyoL@8~zDTQZ#$}3ZyeWKScZci?>y#J~3qh9&ygt7`ncj5tC+Hz8=vm z9dh1izvnofpS<_w@$xsILAy~9nyo@N04osITsjU+$ev+6i@RUIlmU7&*go$Mr_nT<#sYdeGQnpKn-NqubCc z9c%>D%MTT*P?Z22M?!7;J!y30-X}663fOr^8}`Fhtls?Q?I~wg3kiC*cfe(Bs({ox z7eSEZ{Y6cQ-p1=hRsOR)jisPNY0x+$#j76|muQfx8DZfp&TOM;!{5vGZ$k!uyyGm$ zwW5Swc;-8bxwf{Bv1mb#5~-J>h~>9uh^W$UNS@`QHv$$6M52}a!3?R8&JR9YUbRnu z&|qw<+-{7PuP4OKc;qo0Gl%Li_t|!ywof~23=ViZicw5sHusD+d0{*&6h#QZw<-~{ z*pyuuDMruQx2t<`Q63hE-ikC*5JVDcnJXfgZGwyfJ(1`eV?R3kqEnP>+H)*^`O!1e^*GibJpD zqys|6e)o(xihbX^E##ODlYI=6@Rq9FJIi43oRTFoODK*F$!w&n3dI`^TTh6h?Qp@# zZL(FiT3!UxldI;Hc;9wWI_{zKs;Jhn6cZAh%fNyga#{#!T~n>c)YqiF9P6I&HdM@t zQvvZxPjfrTXP4=eBJF`V-%4LZB)fYw^LhAwZKXZm{)m^}saN*?0AV6-)zh!9a~=c% zI)|B?>b^_@{9%GirFi_4_}bzSgxwgcdsRW;|gs+y~jAt7M#G{EEv&mP0on3 zt44y+3sAuETz1*MY#O5k;+nU4;Cb)ct^q3L7x0-G@}M0QPpIu{mZwaehrvxnR-WX|ynn z_hTTw%Pnr3xODxJK-MU43mmVgX%-bxEMT6p&U(2$`<)|7ot~HXG1q>7$H8&=P37n; zx!`aRe~~WGhoa)7j{`aYgNF8)Dh+3bz$Ie7v`$KtChyl3M$5VIjR_4+j;qkyL47OR z%H_ubmrUAh<`$`W4#skmiAa!Sxf0;~c7Nt%(s%qJ6CPSO5-qf|dUR=J)`ZP2^(F}o zVCxXGjAR8qu3AMDm+1|Hv3+*yhh8yGV;R)S_&XCJW=icMF46b2EkYzhm53cU{<1c7LoZN3sc;wBVuAxujVvqHQHGcRn0( z{TdH1coWk?Z1B?(*JYBwt-g`5D8=;9$0Zoiaz7#wx<=|J;8@Srw^MxI zDvFk~*N%G_pv%Y7lGd0e|4~#a66^sP#Kwm4^JyqRDGYePEkaM4dptn6FftZ-ISXPKovgn^Z1aI4a)<=MuwcT#{ zK<09GadaA?5@HjX6RQsE4W0}2_(@)+vw|7vfbmQ}m*MXzdb3bL z1Q^1?Oc4C(rh&#Z#+dA1Hf9FKKI{yY5g>ptp@1mmVWn-^oc(?D#(mfnEgmwoD#|bU z^nI8`n27(%oVuxLRpcd7s(Tz9F)^StGiOHrrrgwdI+3fW zlnH;E31m-auo*%pJqUUjL7xJXlRgS+5B+>i#0GJl;e)7m zSIru!{Lo}M?U_=>Al2I_GZ-NYx9{f*_xn|S$V^7zv^$-3Dkg;<1G^EsztNbF^Yd%2 z1DSA)4G)~Y&SV6tYUfS@mL>fQ+j<1|yL!{=+lgD1GPCL$XEMUl(isw^;7kEX33mVW z)h+22II~JOw@Zk^+icOYI)Y^kR6?M@SJYYfc!%1|f-F>!3Wi7r5i||4ipFrl+<5)0 z3@VT$Z9VR(0}Aa?$##ez_%g^ufC~1)8qJ>KB`$Qx@3x#Z<#zXei)iVr^Z3JWe`S_e zz>&ww#P_I(V3@g>8|hhO7Rk`)+g~D03UzH0{nmuzsA^=QV!!m5-*!}cRm|EpvY=_m zv2+@A>XA|$9cASc-Wll8=@i-Jim2h|nw$f8SJvgdh@c%GME!OU@;l?D=e+?*m$>!l zodq4^4OuVw?@_#73o$Knq76z9z}6~Ze!$F19T9*-`RV&%=dKf8ZpQ|a_gz^qa6Yh7 z#9Htjz*c>p%@M!_llu{Ne@$8rPj%pzIq}tILY1@oCGrp)RYYh{5U^s21~N3=lCHg8 zt#A8iIfP7z`HJJ}0jpf@5&=0WBx8ikqPclsPeZ=vRG(gs{FZ3#M7t3p($g>79%G~f zYFO|HTv(7;;AJ)~8D7RuT?(PaCLDYx0RKaJZ;@VnKthJ(B0~n7;Gyw~KYInx=b!xQ4eDRN zN(*3UsoUFXn?#3?D0FIF-uG^Sv1_LDLauZ)lnqqj;;$mJ(kWNxML*BYi|Q$qyL~T2 zII}m6<5IP@m5&I))3O_>XgFuE*AAD_LG*^W<9i+D<2a{W*?&Bf1osoXwzNXcPb9UG zXPk;9GQqCWWWJpnukG0}I#3ox!)D!h#_`b!;~6{LhIia;Y*T;0l3GL@og~S!Jitq_ zfrwJadjbzFKw1Dp(7g2j2={_X8uSL-s7+&>e@fjqD5fk9NRLMF<0Kg&L4FY>$4tGI zoyAS@hgHleWteQEb`U3eskB3;!{@;6=?Vq}?N>NyG%cf5HtRvto_d-V2cOu`FyX$T zm56E$r=$Be#E2kDt%v=b*~S>1Mt#o6#J6Bi%AK?HJ9X&?K`7!}B^88X`rxDK@@(gI z^>SxuvsoSF1HCY}+{IqGR?b8CbZ?P*;&C?mF)iR-=)>Q0jPvW{%NSf$H6=RKC%Cb_ z5TV?*)eWWf&!L5WwF$Qy9ra&6U4kJIufHT4AwcRHehXmCcW2_cY?`X1`$LbBs*Mss zUoxSdN^8l&Tj^?NnTF-Tx!Uw~2lrKw;Hu@bL21giogrGPd63Ma{ZFuo-nmkPd78H@ zb?Qur^3lk}g|mHYozWue@JKidN1iEs1E$2<+2<9Eis2~|AV>)Yb${Gw&{ zU-5%`=O3B`Z8y%U!tsCyCqq=?I zkaLIT#c$p@cSAta_bZ20%uK_4l&zz}NK~;_q^_-$qR^-nrbo6ffwfwexd1r?{~6pX z`z)LOH?>!GCbz75l#LVy*^(q&2+(NJmb-f_bW96w!4RQ8S98|fZb*Q)f)E?MPB0wA zAk=b16p-9)|7RAueVWpMIej-GxiuF+-X=U{)Y=OlIeZ&tYUloL#O=J!}Ipb%rF-|LhDU!V0R>V$>(Av@jnc> zh&{+1O*|eibFZdxeH_M^-r*!3!}OGBRIpFsEq&8Vb-hq)SG{Uc1X_;ToAP_FM##Iche{7R%VcVp7doW?7|E^VWoHDM<_6bQq&!FFWkF+ zGk>iAB*5k?6La99rb^bM?euWi#*AeWKT4t`Xamzh=NS#77FVXNN8~ZXb8~Y|FupE` zjyFwTERBWh>u#bF5G!~^vUf*FEnMp}626ZfF~bRd6D>_o?bp~=Xx4aZz_W8@Z?c2r zX1%c0x}ljNK%k~bCQ-FqV)Ah@D46=PpsCzLb&_tFL~VkU#AX~pCnGoPVpyZmE&uk} z;rzY`shQKq+qwY0%VqNYX4k}(n>oHo7L*`Ign^t674Ed)9|~T+Xs*n<-1MeBHfoex zALix)EZLA|$tH+;3S8_Dvj!J5qZ{3O_+0w#gw3~vSC9^^cv>wLE5EQzVj7gL8_DU; z-jXgS6h>Kz$8*KJK?azMpL>2k2VPnbSHWD6F$cjvO08)OsLFoReJC(H=eUv`YbqrS zYa{4DuMdf1RH=ivn0WK^eS*XGaYM`5RTHVs@C3~EQ=5V&-`HNggK$)a-{!3ZzS}Sb zd&&5u&MDHXH9pUtu#luD;K0<$;!)>=dYcMlohqX(H#NI7vwjv(DA=a^v})thwzJ86 zNVY1dq1XKNmw~JY_`J!wmxcY9e%pbIl+??1uw62+;PH8HkWq4K4yq+JtXTkoVA8!6 zh#n6VCWQr2aub8a|DGpO0S0v?0W@tM>o<3Eg6i6+;6Whz8KGMfPo+&!J{cdy>HyDv zx56ic5B=Z+{zB20Ru`#EiJb?IT6QxP!zJ`cENrhUtE2mJ-r<@VFEv>~l#inw8Y5?8 z;=B()~Xv{On3aq)7 zI{ly~?ACD#dl^^wmg)ZUP(pE(RewB3%o{2|fKTwGTs(X?a`CuP_QWUfq-Q@|la=bx zb>mPpxNWFL7$#V(VeB@Qr36Yq# zScE!T6@qg_rt5dodcE~>&708{kjiQ|r(z98J`ZOm3o&t%h%^{oaaaD9-wsn?NyrKm zRmcy-tc=AlqNJQGTjf`2H>i*%C?H5p+9nN^80}oEZM^ebC5o35$=3=wEdEx?^Bjq+ zG9^{(f;(!lMo&{PnjigMwIBI_Re`cnuYE;|RA7M_#|lU!^&0=`9s?G zSU{mo-cM);c}L6x>W^A?dS!+UTHEGDj)8$G6|4 z&lbT1gK=;S8_t6*(kj$Q`X&6_sl9cVAYH76y6T5Ccb?q5DRYi4eg(#y1@mv@rW_ML zd*pNkBfJ9{-(w+)o*Psl-%9FhPDHo+3ja1)ES@3@d$3}5_>+nPAXqDdGNIss!(cEN z@>>`iK@6m*-;9b3AWUil44F{J#w;ih?S&2d7=o`+3i~6_1tEaSkhy5fKm|Ofgok~M zjWAsZ1r#972v9I8LoF%n>3$?(*vDdi7q75cfGNR1d7nQ53}!v{Hwi0kr9!R9I;2U6 zrO%CDhbKzKjOm&BJ)Ip1fiM*x2Nu*&u!AD-_SZ&KqtR~I#<~<`|Zk){qz;Q35wg;(Dd|!ZEK=i>DT`p1b;F8ukT&8JqZ(qhpNry z1>u%hhTS24oF^y7JZ$C{U!;^M&K3BsK3(^!ma1G#(RBP2aRk48^{!lPy8X*3vm4^sst~!`at8U|E z%-D&6v;a`gl{4Svz5Sa#vZK%0hQ2E33MWM3q&k=s)bE*5O5+36g{Li%Z7Xz|8o56< zH)!bcJ;S2*174K=RD=NLPV*wtG%#Zxm%~W2#;wwiuCNUyg)D}Hzd`u%u>sUp z^6!Y5OqUDUX=&G(#PLVH$sXb>f$ zf{Dq<35_GzwqAVBjP0Oi(pef$b^3wPYQjd5AKGcOr;biGuGS0x+y2VqZP61`9SYwS~y~4rc`O>H&655O3*l&XRhFUW>}J-JPTz(_cx4 zw_NG6ZTg`Og04}waa=${YcrB0Dli8h#zPI@JHUl{!q#+X2+V4QHWEe%<`KP$l_jZ+ zkd#8vkaBR9CRUoW3~5V>sWAxwa&wS_2r;hBSE+8$E-UOcfTX%9dn5vs>pOWi{u4Io z|6qft;|f%X^A_l#EE+L=R$i;*VHPrhf45)RhL8V}0T0kRG^09LM1Xdvsr<%+@z5^& zi8EY$d34-wX*MKa zwA$U7_!MAtKATYD2|}|c2xl5RfO9}t>=@9J1vrQWgit#s-~T+?yZW(UwKII03Pe+n zdER6Iqn>ltO6D-YW;y0? zR(wuzeQp*e+FqF|4}TVdGixwLyhR;NQ(Nfkh9^g0h$YCBr~{w>T8yzJtBrd_*SA#> zth>3yuI}(|`(2W~8&klxDx@mI;skCHtBAmnggl6_Qv?Pq^Ya89CfIWN25kf*Lxep1 zQW7@i4EOC$C|iY`S}}`1VeP%Rp6!YZI7Png6tq6H>nxm5KfqXiVR^D9u@Wp|iTv|y zWNk3`Y6@1QfeYkQ8CP!xhTXHd>T-i5(+1aqb1XBM&r&mPZ|doTtT0vWiH8!81k)}! z=a4xqWCGNi1yLg=tK3wB-31^^wnQER)j7dUT;hItAW3ifUvy6+Yr89jVCems5F#cU z_qY>EC&PUM1hFpBgQ7viH~e6^nZ)@LODnK~R(tRHqW)`iO=Qk)0k|MX(D>{G$65Gr zM!Nk6*2OEUK*1?O@`75)Zq$BW2sL+mSS5_GM-yYhWz z)=yp8Grby*NW#5~IC`6Ax|>6~YW^;k6;kneAoJL&=!z%M7|JkVbO9F}AdrJ9r)~d< zp;}%A93Ys&N{(=0ww$3?qIp_|wJ^hi7G}_R!KTGa!%s)*$s;15;#0XFjOrNH_%CCg zb}}s(d7wY{|I5qJfVr;Owm@JMkt+;e3Pv%*V%R3#wsqkj3DvZ!W!DQ$dR~2p0JS!> z))xWH;Yh{9p2Ox-t_A@Z^v^tmCEALr7ye0{&fn`7(SDU#r!R0*%w6zzc5Uv?Re8gkbIJ zJBl-k!rh+6^Fpd8|G({jCm1SE1NnXz5DAro|0|Wy02?nnDbSOLG(`eD`?gAc*HS#z}y zurHGTckN(LG!4@Z*JKTNfFb9Hb@;!51IoXFC@|#90PFD6;8{?qLjC}*0qSHlK-K!Y z3nX%3wDu?48mImZ_x!sQf^Apc%)3~;{_!DC!1nX}JTz8DE_9u{$_D10fp?};Z9FX3x_dn-%1K*lPdmy(zpM^ zB!4BzOw2M{(k*LF_PTBVUvFc4;#?>@cuR+GIP`5 zpX7lY!vCg2TH?=PzzlZ&e_;NbK>L3ILnRH|&b?rz3KCiV5APpis+`p3Ui1d;$-MCY zSMy>+ea>lMdbs?8`#NeRqnz`-mx2&UA=0)RzyCuSmiFDk$=*4EXTa5`XI|H1wOP^6 zM9%&=U01AmS7%hFphNPVQ5|pi&l_}!(SvLD@|uG~K$A%;|u`u_eE9SvgeLf|HOlHR*Ah#t)p{1+M4aq8PJ6$&1mh`mpRee)p- nq795%NvZ#xH+GreM=V+tu_?7qt9Dqq3LqseCkFds82|qRJs-Dg literal 0 HcmV?d00001 diff --git a/datadog/client.go b/datadog/client.go new file mode 100644 index 00000000..9d9a22fc --- /dev/null +++ b/datadog/client.go @@ -0,0 +1,34 @@ +package datadog + +import ( + "os" + + "github.com/senorprogrammer/wtf/wtf" + datadog "github.com/zorkian/go-datadog-api" +) + +// Monitors returns a list of newrelic monitors +func Monitors() ([]datadog.Monitor, error) { + client := datadog.NewClient(apiKey(), applicationKey()) + + monitors, err := client.GetMonitorsByTags(wtf.ToStrs(wtf.Config.UList("wtf.mods.datadog.monitors.tags"))) + if err != nil { + return nil, err + } + + return monitors, nil +} + +func apiKey() string { + return wtf.Config.UString( + "wtf.mods.datadog.apiKey", + os.Getenv("WTF_DATADOG_API_KEY"), + ) +} + +func applicationKey() string { + return wtf.Config.UString( + "wtf.mods.datadog.applicationKey", + os.Getenv("WTF_DATADOG_APPLICATION_KEY"), + ) +} diff --git a/datadog/widget.go b/datadog/widget.go new file mode 100644 index 00000000..6ea22e4c --- /dev/null +++ b/datadog/widget.go @@ -0,0 +1,73 @@ +package datadog + +import ( + "fmt" + + "github.com/senorprogrammer/wtf/wtf" + datadog "github.com/zorkian/go-datadog-api" +) + +type Widget struct { + wtf.TextWidget +} + +func NewWidget() *Widget { + widget := Widget{ + TextWidget: wtf.NewTextWidget("Datadog", "datadog", false), + } + + return &widget +} + +/* -------------------- Exported Functions -------------------- */ + +func (widget *Widget) Refresh() { + monitors, monitorErr := Monitors() + + widget.UpdateRefreshedAt() + widget.View.SetTitle(widget.ContextualTitle(fmt.Sprintf("%s", widget.Name))) + widget.View.Clear() + + var content string + if monitorErr != nil { + widget.View.SetWrap(true) + content = monitorErr.Error() + } else { + widget.View.SetWrap(false) + content = widget.contentFrom(monitors) + } + + widget.View.SetText(content) +} + +/* -------------------- Unexported Functions -------------------- */ + +func (widget *Widget) contentFrom(monitors []datadog.Monitor) string { + var str string + + triggeredMonitors := []datadog.Monitor{} + + for _, monitor := range monitors { + state := *monitor.OverallState + switch state { + case "Alert": + triggeredMonitors = append(triggeredMonitors, monitor) + } + } + if len(triggeredMonitors) > 0 { + str = str + fmt.Sprintf( + " %s\n", + "[red]Triggered Monitors[white]", + ) + for _, triggeredMonitor := range triggeredMonitors { + str = str + fmt.Sprintf("[red] %s\n", *triggeredMonitor.Name) + } + } else { + str = str + fmt.Sprintf( + " %s\n", + "[green]No Triggered Monitors[white]", + ) + } + + return str +} diff --git a/main.go b/main.go index e1770367..09297f65 100644 --- a/main.go +++ b/main.go @@ -20,6 +20,7 @@ import ( "github.com/senorprogrammer/wtf/cryptoexchanges/bittrex" "github.com/senorprogrammer/wtf/cryptoexchanges/blockfolio" "github.com/senorprogrammer/wtf/cryptoexchanges/cryptolive" + "github.com/senorprogrammer/wtf/datadog" "github.com/senorprogrammer/wtf/flags" "github.com/senorprogrammer/wtf/gcal" "github.com/senorprogrammer/wtf/gerrit" @@ -195,6 +196,8 @@ func addWidget(app *tview.Application, pages *tview.Pages, widgetName string) { widgets = append(widgets, cmdrunner.NewWidget()) case "cryptolive": widgets = append(widgets, cryptolive.NewWidget()) + case "datadog": + widgets = append(widgets, datadog.NewWidget()) case "gcal": widgets = append(widgets, gcal.NewWidget()) case "gerrit": diff --git a/vendor/github.com/cenkalti/backoff/.gitignore b/vendor/github.com/cenkalti/backoff/.gitignore new file mode 100644 index 00000000..00268614 --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/.gitignore @@ -0,0 +1,22 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe diff --git a/vendor/github.com/cenkalti/backoff/.travis.yml b/vendor/github.com/cenkalti/backoff/.travis.yml new file mode 100644 index 00000000..d6f85ad6 --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/.travis.yml @@ -0,0 +1,10 @@ +language: go +go: + - 1.3.3 + - 1.x + - tip +before_install: + - go get github.com/mattn/goveralls + - go get golang.org/x/tools/cmd/cover +script: + - $HOME/gopath/bin/goveralls -service=travis-ci diff --git a/vendor/github.com/cenkalti/backoff/LICENSE b/vendor/github.com/cenkalti/backoff/LICENSE new file mode 100644 index 00000000..89b81799 --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2014 Cenk Altı + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/cenkalti/backoff/README.md b/vendor/github.com/cenkalti/backoff/README.md new file mode 100644 index 00000000..13b347fb --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/README.md @@ -0,0 +1,30 @@ +# Exponential Backoff [![GoDoc][godoc image]][godoc] [![Build Status][travis image]][travis] [![Coverage Status][coveralls image]][coveralls] + +This is a Go port of the exponential backoff algorithm from [Google's HTTP Client Library for Java][google-http-java-client]. + +[Exponential backoff][exponential backoff wiki] +is an algorithm that uses feedback to multiplicatively decrease the rate of some process, +in order to gradually find an acceptable rate. +The retries exponentially increase and stop increasing when a certain threshold is met. + +## Usage + +See https://godoc.org/github.com/cenkalti/backoff#pkg-examples + +## Contributing + +* I would like to keep this library as small as possible. +* Please don't send a PR without opening an issue and discussing it first. +* If proposed change is not a common use case, I will probably not accept it. + +[godoc]: https://godoc.org/github.com/cenkalti/backoff +[godoc image]: https://godoc.org/github.com/cenkalti/backoff?status.png +[travis]: https://travis-ci.org/cenkalti/backoff +[travis image]: https://travis-ci.org/cenkalti/backoff.png?branch=master +[coveralls]: https://coveralls.io/github/cenkalti/backoff?branch=master +[coveralls image]: https://coveralls.io/repos/github/cenkalti/backoff/badge.svg?branch=master + +[google-http-java-client]: https://github.com/google/google-http-java-client +[exponential backoff wiki]: http://en.wikipedia.org/wiki/Exponential_backoff + +[advanced example]: https://godoc.org/github.com/cenkalti/backoff#example_ diff --git a/vendor/github.com/cenkalti/backoff/backoff.go b/vendor/github.com/cenkalti/backoff/backoff.go new file mode 100644 index 00000000..3676ee40 --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/backoff.go @@ -0,0 +1,66 @@ +// Package backoff implements backoff algorithms for retrying operations. +// +// Use Retry function for retrying operations that may fail. +// If Retry does not meet your needs, +// copy/paste the function into your project and modify as you wish. +// +// There is also Ticker type similar to time.Ticker. +// You can use it if you need to work with channels. +// +// See Examples section below for usage examples. +package backoff + +import "time" + +// BackOff is a backoff policy for retrying an operation. +type BackOff interface { + // NextBackOff returns the duration to wait before retrying the operation, + // or backoff. Stop to indicate that no more retries should be made. + // + // Example usage: + // + // duration := backoff.NextBackOff(); + // if (duration == backoff.Stop) { + // // Do not retry operation. + // } else { + // // Sleep for duration and retry operation. + // } + // + NextBackOff() time.Duration + + // Reset to initial state. + Reset() +} + +// Stop indicates that no more retries should be made for use in NextBackOff(). +const Stop time.Duration = -1 + +// ZeroBackOff is a fixed backoff policy whose backoff time is always zero, +// meaning that the operation is retried immediately without waiting, indefinitely. +type ZeroBackOff struct{} + +func (b *ZeroBackOff) Reset() {} + +func (b *ZeroBackOff) NextBackOff() time.Duration { return 0 } + +// StopBackOff is a fixed backoff policy that always returns backoff.Stop for +// NextBackOff(), meaning that the operation should never be retried. +type StopBackOff struct{} + +func (b *StopBackOff) Reset() {} + +func (b *StopBackOff) NextBackOff() time.Duration { return Stop } + +// ConstantBackOff is a backoff policy that always returns the same backoff delay. +// This is in contrast to an exponential backoff policy, +// which returns a delay that grows longer as you call NextBackOff() over and over again. +type ConstantBackOff struct { + Interval time.Duration +} + +func (b *ConstantBackOff) Reset() {} +func (b *ConstantBackOff) NextBackOff() time.Duration { return b.Interval } + +func NewConstantBackOff(d time.Duration) *ConstantBackOff { + return &ConstantBackOff{Interval: d} +} diff --git a/vendor/github.com/cenkalti/backoff/context.go b/vendor/github.com/cenkalti/backoff/context.go new file mode 100644 index 00000000..5d157092 --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/context.go @@ -0,0 +1,60 @@ +package backoff + +import ( + "time" + + "golang.org/x/net/context" +) + +// BackOffContext is a backoff policy that stops retrying after the context +// is canceled. +type BackOffContext interface { + BackOff + Context() context.Context +} + +type backOffContext struct { + BackOff + ctx context.Context +} + +// WithContext returns a BackOffContext with context ctx +// +// ctx must not be nil +func WithContext(b BackOff, ctx context.Context) BackOffContext { + if ctx == nil { + panic("nil context") + } + + if b, ok := b.(*backOffContext); ok { + return &backOffContext{ + BackOff: b.BackOff, + ctx: ctx, + } + } + + return &backOffContext{ + BackOff: b, + ctx: ctx, + } +} + +func ensureContext(b BackOff) BackOffContext { + if cb, ok := b.(BackOffContext); ok { + return cb + } + return WithContext(b, context.Background()) +} + +func (b *backOffContext) Context() context.Context { + return b.ctx +} + +func (b *backOffContext) NextBackOff() time.Duration { + select { + case <-b.Context().Done(): + return Stop + default: + return b.BackOff.NextBackOff() + } +} diff --git a/vendor/github.com/cenkalti/backoff/exponential.go b/vendor/github.com/cenkalti/backoff/exponential.go new file mode 100644 index 00000000..d9de15a1 --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/exponential.go @@ -0,0 +1,158 @@ +package backoff + +import ( + "math/rand" + "time" +) + +/* +ExponentialBackOff is a backoff implementation that increases the backoff +period for each retry attempt using a randomization function that grows exponentially. + +NextBackOff() is calculated using the following formula: + + randomized interval = + RetryInterval * (random value in range [1 - RandomizationFactor, 1 + RandomizationFactor]) + +In other words NextBackOff() will range between the randomization factor +percentage below and above the retry interval. + +For example, given the following parameters: + + RetryInterval = 2 + RandomizationFactor = 0.5 + Multiplier = 2 + +the actual backoff period used in the next retry attempt will range between 1 and 3 seconds, +multiplied by the exponential, that is, between 2 and 6 seconds. + +Note: MaxInterval caps the RetryInterval and not the randomized interval. + +If the time elapsed since an ExponentialBackOff instance is created goes past the +MaxElapsedTime, then the method NextBackOff() starts returning backoff.Stop. + +The elapsed time can be reset by calling Reset(). + +Example: Given the following default arguments, for 10 tries the sequence will be, +and assuming we go over the MaxElapsedTime on the 10th try: + + Request # RetryInterval (seconds) Randomized Interval (seconds) + + 1 0.5 [0.25, 0.75] + 2 0.75 [0.375, 1.125] + 3 1.125 [0.562, 1.687] + 4 1.687 [0.8435, 2.53] + 5 2.53 [1.265, 3.795] + 6 3.795 [1.897, 5.692] + 7 5.692 [2.846, 8.538] + 8 8.538 [4.269, 12.807] + 9 12.807 [6.403, 19.210] + 10 19.210 backoff.Stop + +Note: Implementation is not thread-safe. +*/ +type ExponentialBackOff struct { + InitialInterval time.Duration + RandomizationFactor float64 + Multiplier float64 + MaxInterval time.Duration + // After MaxElapsedTime the ExponentialBackOff stops. + // It never stops if MaxElapsedTime == 0. + MaxElapsedTime time.Duration + Clock Clock + + currentInterval time.Duration + startTime time.Time + random *rand.Rand +} + +// Clock is an interface that returns current time for BackOff. +type Clock interface { + Now() time.Time +} + +// Default values for ExponentialBackOff. +const ( + DefaultInitialInterval = 500 * time.Millisecond + DefaultRandomizationFactor = 0.5 + DefaultMultiplier = 1.5 + DefaultMaxInterval = 60 * time.Second + DefaultMaxElapsedTime = 15 * time.Minute +) + +// NewExponentialBackOff creates an instance of ExponentialBackOff using default values. +func NewExponentialBackOff() *ExponentialBackOff { + b := &ExponentialBackOff{ + InitialInterval: DefaultInitialInterval, + RandomizationFactor: DefaultRandomizationFactor, + Multiplier: DefaultMultiplier, + MaxInterval: DefaultMaxInterval, + MaxElapsedTime: DefaultMaxElapsedTime, + Clock: SystemClock, + random: rand.New(rand.NewSource(time.Now().UnixNano())), + } + b.Reset() + return b +} + +type systemClock struct{} + +func (t systemClock) Now() time.Time { + return time.Now() +} + +// SystemClock implements Clock interface that uses time.Now(). +var SystemClock = systemClock{} + +// Reset the interval back to the initial retry interval and restarts the timer. +func (b *ExponentialBackOff) Reset() { + b.currentInterval = b.InitialInterval + b.startTime = b.Clock.Now() +} + +// NextBackOff calculates the next backoff interval using the formula: +// Randomized interval = RetryInterval +/- (RandomizationFactor * RetryInterval) +func (b *ExponentialBackOff) NextBackOff() time.Duration { + // Make sure we have not gone over the maximum elapsed time. + if b.MaxElapsedTime != 0 && b.GetElapsedTime() > b.MaxElapsedTime { + return Stop + } + defer b.incrementCurrentInterval() + if b.random == nil { + b.random = rand.New(rand.NewSource(time.Now().UnixNano())) + } + return getRandomValueFromInterval(b.RandomizationFactor, b.random.Float64(), b.currentInterval) +} + +// GetElapsedTime returns the elapsed time since an ExponentialBackOff instance +// is created and is reset when Reset() is called. +// +// The elapsed time is computed using time.Now().UnixNano(). It is +// safe to call even while the backoff policy is used by a running +// ticker. +func (b *ExponentialBackOff) GetElapsedTime() time.Duration { + return b.Clock.Now().Sub(b.startTime) +} + +// Increments the current interval by multiplying it with the multiplier. +func (b *ExponentialBackOff) incrementCurrentInterval() { + // Check for overflow, if overflow is detected set the current interval to the max interval. + if float64(b.currentInterval) >= float64(b.MaxInterval)/b.Multiplier { + b.currentInterval = b.MaxInterval + } else { + b.currentInterval = time.Duration(float64(b.currentInterval) * b.Multiplier) + } +} + +// Returns a random value from the following interval: +// [randomizationFactor * currentInterval, randomizationFactor * currentInterval]. +func getRandomValueFromInterval(randomizationFactor, random float64, currentInterval time.Duration) time.Duration { + var delta = randomizationFactor * float64(currentInterval) + var minInterval = float64(currentInterval) - delta + var maxInterval = float64(currentInterval) + delta + + // Get a random value from the range [minInterval, maxInterval]. + // The formula used below has a +1 because if the minInterval is 1 and the maxInterval is 3 then + // we want a 33% chance for selecting either 1, 2 or 3. + return time.Duration(minInterval + (random * (maxInterval - minInterval + 1))) +} diff --git a/vendor/github.com/cenkalti/backoff/retry.go b/vendor/github.com/cenkalti/backoff/retry.go new file mode 100644 index 00000000..5dbd825b --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/retry.go @@ -0,0 +1,78 @@ +package backoff + +import "time" + +// An Operation is executing by Retry() or RetryNotify(). +// The operation will be retried using a backoff policy if it returns an error. +type Operation func() error + +// Notify is a notify-on-error function. It receives an operation error and +// backoff delay if the operation failed (with an error). +// +// NOTE that if the backoff policy stated to stop retrying, +// the notify function isn't called. +type Notify func(error, time.Duration) + +// Retry the operation o until it does not return error or BackOff stops. +// o is guaranteed to be run at least once. +// It is the caller's responsibility to reset b after Retry returns. +// +// If o returns a *PermanentError, the operation is not retried, and the +// wrapped error is returned. +// +// Retry sleeps the goroutine for the duration returned by BackOff after a +// failed operation returns. +func Retry(o Operation, b BackOff) error { return RetryNotify(o, b, nil) } + +// RetryNotify calls notify function with the error and wait duration +// for each failed attempt before sleep. +func RetryNotify(operation Operation, b BackOff, notify Notify) error { + var err error + var next time.Duration + + cb := ensureContext(b) + + b.Reset() + for { + if err = operation(); err == nil { + return nil + } + + if permanent, ok := err.(*PermanentError); ok { + return permanent.Err + } + + if next = b.NextBackOff(); next == Stop { + return err + } + + if notify != nil { + notify(err, next) + } + + t := time.NewTimer(next) + + select { + case <-cb.Context().Done(): + t.Stop() + return err + case <-t.C: + } + } +} + +// PermanentError signals that the operation should not be retried. +type PermanentError struct { + Err error +} + +func (e *PermanentError) Error() string { + return e.Err.Error() +} + +// Permanent wraps the given err in a *PermanentError. +func Permanent(err error) *PermanentError { + return &PermanentError{ + Err: err, + } +} diff --git a/vendor/github.com/cenkalti/backoff/ticker.go b/vendor/github.com/cenkalti/backoff/ticker.go new file mode 100644 index 00000000..e742512f --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/ticker.go @@ -0,0 +1,84 @@ +package backoff + +import ( + "runtime" + "sync" + "time" +) + +// Ticker holds a channel that delivers `ticks' of a clock at times reported by a BackOff. +// +// Ticks will continue to arrive when the previous operation is still running, +// so operations that take a while to fail could run in quick succession. +type Ticker struct { + C <-chan time.Time + c chan time.Time + b BackOffContext + stop chan struct{} + stopOnce sync.Once +} + +// NewTicker returns a new Ticker containing a channel that will send +// the time at times specified by the BackOff argument. Ticker is +// guaranteed to tick at least once. The channel is closed when Stop +// method is called or BackOff stops. It is not safe to manipulate the +// provided backoff policy (notably calling NextBackOff or Reset) +// while the ticker is running. +func NewTicker(b BackOff) *Ticker { + c := make(chan time.Time) + t := &Ticker{ + C: c, + c: c, + b: ensureContext(b), + stop: make(chan struct{}), + } + t.b.Reset() + go t.run() + runtime.SetFinalizer(t, (*Ticker).Stop) + return t +} + +// Stop turns off a ticker. After Stop, no more ticks will be sent. +func (t *Ticker) Stop() { + t.stopOnce.Do(func() { close(t.stop) }) +} + +func (t *Ticker) run() { + c := t.c + defer close(c) + + // Ticker is guaranteed to tick at least once. + afterC := t.send(time.Now()) + + for { + if afterC == nil { + return + } + + select { + case tick := <-afterC: + afterC = t.send(tick) + case <-t.stop: + t.c = nil // Prevent future ticks from being sent to the channel. + return + case <-t.b.Context().Done(): + return + } + } +} + +func (t *Ticker) send(tick time.Time) <-chan time.Time { + select { + case t.c <- tick: + case <-t.stop: + return nil + } + + next := t.b.NextBackOff() + if next == Stop { + t.Stop() + return nil + } + + return time.After(next) +} diff --git a/vendor/github.com/cenkalti/backoff/tries.go b/vendor/github.com/cenkalti/backoff/tries.go new file mode 100644 index 00000000..cfeefd9b --- /dev/null +++ b/vendor/github.com/cenkalti/backoff/tries.go @@ -0,0 +1,35 @@ +package backoff + +import "time" + +/* +WithMaxRetries creates a wrapper around another BackOff, which will +return Stop if NextBackOff() has been called too many times since +the last time Reset() was called + +Note: Implementation is not thread-safe. +*/ +func WithMaxRetries(b BackOff, max uint64) BackOff { + return &backOffTries{delegate: b, maxTries: max} +} + +type backOffTries struct { + delegate BackOff + maxTries uint64 + numTries uint64 +} + +func (b *backOffTries) NextBackOff() time.Duration { + if b.maxTries > 0 { + if b.maxTries <= b.numTries { + return Stop + } + b.numTries++ + } + return b.delegate.NextBackOff() +} + +func (b *backOffTries) Reset() { + b.numTries = 0 + b.delegate.Reset() +} diff --git a/vendor/github.com/zorkian/go-datadog-api/.gitignore b/vendor/github.com/zorkian/go-datadog-api/.gitignore new file mode 100644 index 00000000..d2631dc6 --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/.gitignore @@ -0,0 +1,2 @@ +*.sublime* +cmd diff --git a/vendor/github.com/zorkian/go-datadog-api/.travis.yml b/vendor/github.com/zorkian/go-datadog-api/.travis.yml new file mode 100644 index 00000000..9be7add3 --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/.travis.yml @@ -0,0 +1,26 @@ +language: go + +go: + - "1.7" + - "1.8" + - "1.9" + - "1.10.x" + - "tip" + +env: + - "PATH=/home/travis/gopath/bin:$PATH" + +install: + - go get -v -t . + +script: + - go get -u github.com/golang/lint/golint + - golint ./... | grep -v vendor/ + - make + - scripts/check-code-generation-ran.sh + # PR's don't have access to Travis EnvVars with DDog API Keys. Skip acceptance tests on PR. + - 'if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then make testacc; fi' + +matrix: + allow_failures: + - go: tip diff --git a/vendor/github.com/zorkian/go-datadog-api/LICENSE b/vendor/github.com/zorkian/go-datadog-api/LICENSE new file mode 100644 index 00000000..f0903d29 --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/LICENSE @@ -0,0 +1,30 @@ +Copyright (c) 2013 by authors and contributors. + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/zorkian/go-datadog-api/Makefile b/vendor/github.com/zorkian/go-datadog-api/Makefile new file mode 100644 index 00000000..d915d21b --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/Makefile @@ -0,0 +1,40 @@ +TEST?=$$(go list ./... | grep -v '/go-datadog-api/vendor/') +VETARGS?=-asmdecl -atomic -bool -buildtags -copylocks -methods -nilfunc -printf -rangeloops -shift -structtags -unsafeptr +GOFMT_FILES?=$$(find . -name '*.go' | grep -v vendor) + +default: test fmt + +generate: + go generate + +# test runs the unit tests and vets the code +test: + go test . $(TESTARGS) -v -timeout=30s -parallel=4 + @$(MAKE) vet + +# testacc runs acceptance tests +testacc: + go test integration/* -v $(TESTARGS) -timeout 90m + +# testrace runs the race checker +testrace: + go test -race $(TEST) $(TESTARGS) + +fmt: + gofmt -w $(GOFMT_FILES) + +# vet runs the Go source code static analysis tool `vet` to find +# any common errors. +vet: + @go tool vet 2>/dev/null ; if [ $$? -eq 3 ]; then \ + go get golang.org/x/tools/cmd/vet; \ + fi + @echo "go tool vet $(VETARGS)" + @go tool vet $(VETARGS) $$(ls -d */ | grep -v vendor) ; if [ $$? -eq 1 ]; then \ + echo ""; \ + echo "Vet found suspicious constructs. Please check the reported constructs"; \ + echo "and fix them if necessary before submitting the code for review."; \ + exit 1; \ + fi + +.PHONY: default test testacc updatedeps vet diff --git a/vendor/github.com/zorkian/go-datadog-api/README.md b/vendor/github.com/zorkian/go-datadog-api/README.md new file mode 100644 index 00000000..b9d7fcbf --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/README.md @@ -0,0 +1,120 @@ +[![GoDoc](http://img.shields.io/badge/godoc-reference-blue.svg)](https://godoc.org/gopkg.in/zorkian/go-datadog-api.v2) +[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause) +[![Build +status](https://travis-ci.org/zorkian/go-datadog-api.svg)](https://travis-ci.org/zorkian/go-datadog-api) +[![Go Report Card](https://goreportcard.com/badge/github.com/zorkian/go-datadog-api)](https://goreportcard.com/report/github.com/zorkian/go-datadog-api) + +# Datadog API in Go + +**This is the v2.0 version of the API, and has breaking changes. Use the v1.0 branch if you need +legacy code to be supported.** + +A Go wrapper for the Datadog API. Use this library if you need to interact +with the Datadog system. You can post metrics with it if you want, but this library is probably +mostly used for automating dashboards/alerting and retrieving data (events, etc). + +The source API documentation is here: + +## Installation +To use the default branch, include it in your code like: +```go + import "github.com/zorkian/go-datadog-api" +``` + +Or, if you need to control which version to use, import using [gopkg.in](http://labix.org/gopkg.in). Like so: +```go + import "gopkg.in/zorkian/go-datadog-api.v2" +``` + +Using go get: +```bash +go get gopkg.in/zorkian/go-datadog-api.v2 +``` + +## USAGE +This library uses pointers to be able to verify if values are set or not (vs the default value for the type). Like + protobuf there are helpers to enhance the API. You can decide to not use them, but you'll have to be careful handling + nil pointers. + +Using the client: +```go + client := datadog.NewClient("api key", "application key") + + dash, err := client.GetDashboard(*datadog.Int(10880)) + if err != nil { + log.Fatalf("fatal: %s\n", err) + } + + log.Printf("dashboard %d: %s\n", dash.GetId(), dash.GetTitle()) +``` + +An example using datadog.String(), which allocates a pointer for you: +```go + m := datadog.Monitor{ + Name: datadog.String("Monitor other things"), + Creator: &datadog.Creator{ + Name: datadog.String("Joe Creator"), + }, + } +``` + +An example using the SetXx, HasXx, GetXx and GetXxOk accessors: +```go + m := datadog.Monitor{} + m.SetName("Monitor all the things") + m.SetMessage("Electromagnetic energy loss") + + // Use HasMessage(), to verify we have interest in the message. + // Using GetMessage() always safe as it returns the actual or, if never set, default value for that type. + if m.HasMessage() { + fmt.Printf("Found message %s\n", m.GetMessage()) + } + + // Alternatively, use GetMessageOk(), it returns a tuple with the (default) value and a boolean expressing + // if it was set at all: + if v, ok := m.GetMessageOk(); ok { + fmt.Printf("Found message %s\n", v) + } +``` + +Check out the Godoc link for the available API methods and, if you can't find the one you need, +let us know (or patches welcome)! + +## DOCUMENTATION + +Please see: + +## BUGS/PROBLEMS/CONTRIBUTING + +There are certainly some, but presently no known major bugs. If you do +find something that doesn't work as expected, please file an issue on +Github: + + + +Thanks in advance! And, as always, patches welcome! + +## DEVELOPMENT +### Running tests +* Run tests tests with `make test`. +* Integration tests can be run with `make testacc`. Run specific integration tests with `make testacc TESTARGS='-run=TestCreateAndDeleteMonitor'` + +The acceptance tests require _DATADOG_API_KEY_ and _DATADOG_APP_KEY_ to be available +in your environment variables. + +*Warning: the integrations tests will create and remove real resources in your Datadog account.* + +### Regenerating code +Accessors `HasXx`, `GetXx`, `GetOkXx` and `SetXx` are generated for each struct field type type that contains pointers. +When structs are updated a contributor has to regenerate these using `go generate` and commit these changes. +Optionally there is a make target for the generation: + +```bash +make generate +``` + +## COPYRIGHT AND LICENSE + +Please see the LICENSE file for the included license information. + +Copyright 2013-2017 by authors and contributors. diff --git a/vendor/github.com/zorkian/go-datadog-api/alerts.go b/vendor/github.com/zorkian/go-datadog-api/alerts.go new file mode 100644 index 00000000..ce1adcc3 --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/alerts.go @@ -0,0 +1,82 @@ +/* + * Datadog API for Go + * + * Please see the included LICENSE file for licensing information. + * + * Copyright 2013 by authors and contributors. + */ + +package datadog + +import ( + "fmt" +) + +// Alert represents the data of an alert: a query that can fire and send a +// message to the users. +type Alert struct { + Id *int `json:"id,omitempty"` + Creator *int `json:"creator,omitempty"` + Query *string `json:"query,omitempty"` + Name *string `json:"name,omitempty"` + Message *string `json:"message,omitempty"` + Silenced *bool `json:"silenced,omitempty"` + NotifyNoData *bool `json:"notify_no_data,omitempty"` + State *string `json:"state,omitempty"` +} + +// reqAlerts receives a slice of all alerts. +type reqAlerts struct { + Alerts []Alert `json:"alerts,omitempty"` +} + +// CreateAlert adds a new alert to the system. This returns a pointer to an +// Alert so you can pass that to UpdateAlert later if needed. +func (client *Client) CreateAlert(alert *Alert) (*Alert, error) { + var out Alert + if err := client.doJsonRequest("POST", "/v1/alert", alert, &out); err != nil { + return nil, err + } + return &out, nil +} + +// UpdateAlert takes an alert that was previously retrieved through some method +// and sends it back to the server. +func (client *Client) UpdateAlert(alert *Alert) error { + return client.doJsonRequest("PUT", fmt.Sprintf("/v1/alert/%d", alert.Id), + alert, nil) +} + +// GetAlert retrieves an alert by identifier. +func (client *Client) GetAlert(id int) (*Alert, error) { + var out Alert + if err := client.doJsonRequest("GET", fmt.Sprintf("/v1/alert/%d", id), nil, &out); err != nil { + return nil, err + } + return &out, nil +} + +// DeleteAlert removes an alert from the system. +func (client *Client) DeleteAlert(id int) error { + return client.doJsonRequest("DELETE", fmt.Sprintf("/v1/alert/%d", id), + nil, nil) +} + +// GetAlerts returns a slice of all alerts. +func (client *Client) GetAlerts() ([]Alert, error) { + var out reqAlerts + if err := client.doJsonRequest("GET", "/v1/alert", nil, &out); err != nil { + return nil, err + } + return out.Alerts, nil +} + +// MuteAlerts turns off alerting notifications. +func (client *Client) MuteAlerts() error { + return client.doJsonRequest("POST", "/v1/mute_alerts", nil, nil) +} + +// UnmuteAlerts turns on alerting notifications. +func (client *Client) UnmuteAlerts() error { + return client.doJsonRequest("POST", "/v1/unmute_alerts", nil, nil) +} diff --git a/vendor/github.com/zorkian/go-datadog-api/checks.go b/vendor/github.com/zorkian/go-datadog-api/checks.go new file mode 100644 index 00000000..5ed6de77 --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/checks.go @@ -0,0 +1,25 @@ +package datadog + +type Check struct { + Check *string `json:"check,omitempty"` + HostName *string `json:"host_name,omitempty"` + Status *Status `json:"status,omitempty"` + Timestamp *string `json:"timestamp,omitempty"` + Message *string `json:"message,omitempty"` + Tags []string `json:"tags,omitempty"` +} + +type Status int + +const ( + OK Status = iota + WARNING + CRITICAL + UNKNOWN +) + +// PostCheck posts the result of a check run to the server +func (client *Client) PostCheck(check Check) error { + return client.doJsonRequest("POST", "/v1/check_run", + check, nil) +} diff --git a/vendor/github.com/zorkian/go-datadog-api/client.go b/vendor/github.com/zorkian/go-datadog-api/client.go new file mode 100644 index 00000000..aa5d17fc --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/client.go @@ -0,0 +1,100 @@ +/* + * Datadog API for Go + * + * Please see the included LICENSE file for licensing information. + * + * Copyright 2013 by authors and contributors. + */ + +package datadog + +import ( + "encoding/json" + "io/ioutil" + "net/http" + "os" + "time" +) + +// Client is the object that handles talking to the Datadog API. This maintains +// state information for a particular application connection. +type Client struct { + apiKey, appKey, baseUrl string + + //The Http Client that is used to make requests + HttpClient *http.Client + RetryTimeout time.Duration +} + +// valid is the struct to unmarshal validation endpoint responses into. +type valid struct { + Errors []string `json:"errors"` + IsValid bool `json:"valid"` +} + +// NewClient returns a new datadog.Client which can be used to access the API +// methods. The expected argument is the API key. +func NewClient(apiKey, appKey string) *Client { + baseUrl := os.Getenv("DATADOG_HOST") + if baseUrl == "" { + baseUrl = "https://app.datadoghq.com" + } + + return &Client{ + apiKey: apiKey, + appKey: appKey, + baseUrl: baseUrl, + HttpClient: http.DefaultClient, + RetryTimeout: time.Duration(60 * time.Second), + } +} + +// SetKeys changes the value of apiKey and appKey. +func (c *Client) SetKeys(apiKey, appKey string) { + c.apiKey = apiKey + c.appKey = appKey +} + +// SetBaseUrl changes the value of baseUrl. +func (c *Client) SetBaseUrl(baseUrl string) { + c.baseUrl = baseUrl +} + +// GetBaseUrl returns the baseUrl. +func (c *Client) GetBaseUrl() string { + return c.baseUrl +} + +// Validate checks if the API and application keys are valid. +func (client *Client) Validate() (bool, error) { + var out valid + var resp *http.Response + + uri, err := client.uriForAPI("/v1/validate") + if err != nil { + return false, err + } + + req, err := http.NewRequest("GET", uri, nil) + if err != nil { + return false, err + } + + resp, err = client.doRequestWithRetries(req, client.RetryTimeout) + if err != nil { + return false, err + } + + defer resp.Body.Close() + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return false, err + } + + if err = json.Unmarshal(body, &out); err != nil { + return false, err + } + + return out.IsValid, nil +} diff --git a/vendor/github.com/zorkian/go-datadog-api/comments.go b/vendor/github.com/zorkian/go-datadog-api/comments.go new file mode 100644 index 00000000..41acd66f --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/comments.go @@ -0,0 +1,72 @@ +/* + * Datadog API for Go + * + * Please see the included LICENSE file for licensing information. + * + * Copyright 2013 by authors and contributors. + */ + +package datadog + +import ( + "fmt" +) + +// Comment is a special form of event that appears in a stream. +type Comment struct { + Id *int `json:"id,omitempty"` + RelatedId *int `json:"related_event_id,omitempty"` + Handle *string `json:"handle,omitempty"` + Message *string `json:"message,omitempty"` + Resource *string `json:"resource,omitempty"` + Url *string `json:"url,omitempty"` +} + +// reqComment is the container for receiving commenst. +type reqComment struct { + Comment *Comment `json:"comment,omitempty"` +} + +// CreateComment adds a new comment to the system. +func (client *Client) CreateComment(handle, message string) (*Comment, error) { + var out reqComment + comment := Comment{Message: String(message)} + if len(handle) > 0 { + comment.Handle = String(handle) + } + if err := client.doJsonRequest("POST", "/v1/comments", &comment, &out); err != nil { + return nil, err + } + return out.Comment, nil +} + +// CreateRelatedComment adds a new comment, but lets you specify the related +// identifier for the comment. +func (client *Client) CreateRelatedComment(handle, message string, + relid int) (*Comment, error) { + var out reqComment + comment := Comment{Message: String(message), RelatedId: Int(relid)} + if len(handle) > 0 { + comment.Handle = String(handle) + } + if err := client.doJsonRequest("POST", "/v1/comments", &comment, &out); err != nil { + return nil, err + } + return out.Comment, nil +} + +// EditComment changes the message and possibly handle of a particular comment. +func (client *Client) EditComment(id int, handle, message string) error { + comment := Comment{Message: String(message)} + if len(handle) > 0 { + comment.Handle = String(handle) + } + return client.doJsonRequest("PUT", fmt.Sprintf("/v1/comments/%d", id), + &comment, nil) +} + +// DeleteComment does exactly what you expect. +func (client *Client) DeleteComment(id int) error { + return client.doJsonRequest("DELETE", fmt.Sprintf("/v1/comments/%d", id), + nil, nil) +} diff --git a/vendor/github.com/zorkian/go-datadog-api/dashboard_lists.go b/vendor/github.com/zorkian/go-datadog-api/dashboard_lists.go new file mode 100644 index 00000000..68bade92 --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/dashboard_lists.go @@ -0,0 +1,137 @@ +/* + * Datadog API for Go + * + * Please see the included LICENSE file for licensing information. + * + * Copyright 2018 by authors and contributors. + */ + +package datadog + +import ( + "fmt" +) + +const ( + DashboardListItemCustomTimeboard = "custom_timeboard" + DashboardListItemCustomScreenboard = "custom_screenboard" + DashboardListItemIntegerationTimeboard = "integration_timeboard" + DashboardListItemIntegrationScreenboard = "integration_screenboard" + DashboardListItemHostTimeboard = "host_timeboard" +) + +// DashboardList represents a dashboard list. +type DashboardList struct { + Id *int `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + DashboardCount *int `json:"dashboard_count,omitempty"` +} + +// DashboardListItem represents a single dashboard in a dashboard list. +type DashboardListItem struct { + Id *int `json:"id,omitempty"` + Type *string `json:"type,omitempty"` +} + +type reqDashboardListItems struct { + Dashboards []DashboardListItem `json:"dashboards,omitempty"` +} + +type reqAddedDashboardListItems struct { + Dashboards []DashboardListItem `json:"added_dashboards_to_list,omitempty"` +} + +type reqDeletedDashboardListItems struct { + Dashboards []DashboardListItem `json:"deleted_dashboards_from_list,omitempty"` +} + +type reqUpdateDashboardList struct { + Name string `json:"name,omitempty"` +} + +type reqGetDashboardLists struct { + DashboardLists []DashboardList `json:"dashboard_lists,omitempty"` +} + +// GetDashboardList returns a single dashboard list created on this account. +func (client *Client) GetDashboardList(id int) (*DashboardList, error) { + var out DashboardList + if err := client.doJsonRequest("GET", fmt.Sprintf("/v1/dashboard/lists/manual/%d", id), nil, &out); err != nil { + return nil, err + } + return &out, nil +} + +// GetDashboardLists returns a list of all dashboard lists created on this account. +func (client *Client) GetDashboardLists() ([]DashboardList, error) { + var out reqGetDashboardLists + if err := client.doJsonRequest("GET", "/v1/dashboard/lists/manual", nil, &out); err != nil { + return nil, err + } + return out.DashboardLists, nil +} + +// CreateDashboardList returns a single dashboard list created on this account. +func (client *Client) CreateDashboardList(list *DashboardList) (*DashboardList, error) { + var out DashboardList + if err := client.doJsonRequest("POST", "/v1/dashboard/lists/manual", list, &out); err != nil { + return nil, err + } + return &out, nil +} + +// UpdateDashboardList returns a single dashboard list created on this account. +func (client *Client) UpdateDashboardList(list *DashboardList) error { + req := reqUpdateDashboardList{list.GetName()} + return client.doJsonRequest("PUT", fmt.Sprintf("/v1/dashboard/lists/manual/%d", *list.Id), req, nil) +} + +// DeleteDashboardList deletes a dashboard list by the identifier. +func (client *Client) DeleteDashboardList(id int) error { + return client.doJsonRequest("DELETE", fmt.Sprintf("/v1/dashboard/lists/manual/%d", id), nil, nil) +} + +// GetDashboardListItems fetches the dashboard list's dashboard definitions. +func (client *Client) GetDashboardListItems(id int) ([]DashboardListItem, error) { + var out reqDashboardListItems + if err := client.doJsonRequest("GET", fmt.Sprintf("/v1/dashboard/lists/manual/%d/dashboards", id), nil, &out); err != nil { + return nil, err + } + return out.Dashboards, nil +} + +// AddDashboardListItems adds dashboards to an existing dashboard list. +// +// Any items already in the list are ignored (not added twice). +func (client *Client) AddDashboardListItems(dashboardListId int, items []DashboardListItem) ([]DashboardListItem, error) { + req := reqDashboardListItems{items} + var out reqAddedDashboardListItems + if err := client.doJsonRequest("POST", fmt.Sprintf("/v1/dashboard/lists/manual/%d/dashboards", dashboardListId), req, &out); err != nil { + return nil, err + } + return out.Dashboards, nil +} + +// UpdateDashboardListItems updates dashboards of an existing dashboard list. +// +// This will set the list of dashboards to contain only the items in items. +func (client *Client) UpdateDashboardListItems(dashboardListId int, items []DashboardListItem) ([]DashboardListItem, error) { + req := reqDashboardListItems{items} + var out reqDashboardListItems + if err := client.doJsonRequest("PUT", fmt.Sprintf("/v1/dashboard/lists/manual/%d/dashboards", dashboardListId), req, &out); err != nil { + return nil, err + } + return out.Dashboards, nil +} + +// DeleteDashboardListItems deletes dashboards from an existing dashboard list. +// +// Deletes any dashboards in the list of items from the dashboard list. +func (client *Client) DeleteDashboardListItems(dashboardListId int, items []DashboardListItem) ([]DashboardListItem, error) { + req := reqDashboardListItems{items} + var out reqDeletedDashboardListItems + if err := client.doJsonRequest("DELETE", fmt.Sprintf("/v1/dashboard/lists/manual/%d/dashboards", dashboardListId), req, &out); err != nil { + return nil, err + } + return out.Dashboards, nil +} diff --git a/vendor/github.com/zorkian/go-datadog-api/dashboards.go b/vendor/github.com/zorkian/go-datadog-api/dashboards.go new file mode 100644 index 00000000..552b85d0 --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/dashboards.go @@ -0,0 +1,182 @@ +/* + * Datadog API for Go + * + * Please see the included LICENSE file for licensing information. + * + * Copyright 2013 by authors and contributors. + */ + +package datadog + +import ( + "encoding/json" + "fmt" +) + +// GraphDefinitionRequestStyle represents the graph style attributes +type GraphDefinitionRequestStyle struct { + Palette *string `json:"palette,omitempty"` + Width *string `json:"width,omitempty"` + Type *string `json:"type,omitempty"` +} + +// GraphDefinitionRequest represents the requests passed into each graph. +type GraphDefinitionRequest struct { + Query *string `json:"q,omitempty"` + Stacked *bool `json:"stacked,omitempty"` + Aggregator *string `json:"aggregator,omitempty"` + ConditionalFormats []DashboardConditionalFormat `json:"conditional_formats,omitempty"` + Type *string `json:"type,omitempty"` + Style *GraphDefinitionRequestStyle `json:"style,omitempty"` + + // For change type graphs + ChangeType *string `json:"change_type,omitempty"` + OrderDirection *string `json:"order_dir,omitempty"` + CompareTo *string `json:"compare_to,omitempty"` + IncreaseGood *bool `json:"increase_good,omitempty"` + OrderBy *string `json:"order_by,omitempty"` + ExtraCol *string `json:"extra_col,omitempty"` +} + +type GraphDefinitionMarker struct { + Type *string `json:"type,omitempty"` + Value *string `json:"value,omitempty"` + Label *string `json:"label,omitempty"` + Val *json.Number `json:"val,omitempty"` + Min *json.Number `json:"min,omitempty"` + Max *json.Number `json:"max,omitempty"` +} + +type GraphEvent struct { + Query *string `json:"q,omitempty"` +} + +type Yaxis struct { + Min *float64 `json:"min,omitempty"` + Max *float64 `json:"max,omitempty"` + Scale *string `json:"scale,omitempty"` +} + +type Style struct { + Palette *string `json:"palette,omitempty"` + PaletteFlip *bool `json:"paletteFlip,omitempty"` +} + +type GraphDefinition struct { + Viz *string `json:"viz,omitempty"` + Requests []GraphDefinitionRequest `json:"requests,omitempty"` + Events []GraphEvent `json:"events,omitempty"` + Markers []GraphDefinitionMarker `json:"markers,omitempty"` + + // For timeseries type graphs + Yaxis Yaxis `json:"yaxis,omitempty"` + + // For query value type graphs + Autoscale *bool `json:"autoscale,omitempty"` + TextAlign *string `json:"text_align,omitempty"` + Precision *string `json:"precision,omitempty"` + CustomUnit *string `json:"custom_unit,omitempty"` + + // For hostname type graphs + Style *Style `json:"Style,omitempty"` + + Groups []string `json:"group,omitempty"` + IncludeNoMetricHosts *bool `json:"noMetricHosts,omitempty"` + Scopes []string `json:"scope,omitempty"` + IncludeUngroupedHosts *bool `json:"noGroupHosts,omitempty"` +} + +// Graph represents a graph that might exist on a dashboard. +type Graph struct { + Title *string `json:"title,omitempty"` + Definition *GraphDefinition `json:"definition"` +} + +// Template variable represents a template variable that might exist on a dashboard +type TemplateVariable struct { + Name *string `json:"name,omitempty"` + Prefix *string `json:"prefix,omitempty"` + Default *string `json:"default,omitempty"` +} + +// Dashboard represents a user created dashboard. This is the full dashboard +// struct when we load a dashboard in detail. +type Dashboard struct { + Id *int `json:"id,omitempty"` + Description *string `json:"description,omitempty"` + Title *string `json:"title,omitempty"` + Graphs []Graph `json:"graphs,omitempty"` + TemplateVariables []TemplateVariable `json:"template_variables,omitempty"` + ReadOnly *bool `json:"read_only,omitempty"` +} + +// DashboardLite represents a user created dashboard. This is the mini +// struct when we load the summaries. +type DashboardLite struct { + Id *int `json:"id,string,omitempty"` // TODO: Remove ',string'. + Resource *string `json:"resource,omitempty"` + Description *string `json:"description,omitempty"` + Title *string `json:"title,omitempty"` +} + +// reqGetDashboards from /api/v1/dash +type reqGetDashboards struct { + Dashboards []DashboardLite `json:"dashes,omitempty"` +} + +// reqGetDashboard from /api/v1/dash/:dashboard_id +type reqGetDashboard struct { + Resource *string `json:"resource,omitempty"` + Url *string `json:"url,omitempty"` + Dashboard *Dashboard `json:"dash,omitempty"` +} + +type DashboardConditionalFormat struct { + Palette *string `json:"palette,omitempty"` + Comparator *string `json:"comparator,omitempty"` + CustomBgColor *string `json:"custom_bg_color,omitempty"` + Value *json.Number `json:"value,omitempty"` + Inverted *bool `json:"invert,omitempty"` + CustomFgColor *string `json:"custom_fg_color,omitempty"` + CustomImageUrl *string `json:"custom_image,omitempty"` +} + +// GetDashboard returns a single dashboard created on this account. +func (client *Client) GetDashboard(id int) (*Dashboard, error) { + var out reqGetDashboard + if err := client.doJsonRequest("GET", fmt.Sprintf("/v1/dash/%d", id), nil, &out); err != nil { + return nil, err + } + return out.Dashboard, nil +} + +// GetDashboards returns a list of all dashboards created on this account. +func (client *Client) GetDashboards() ([]DashboardLite, error) { + var out reqGetDashboards + if err := client.doJsonRequest("GET", "/v1/dash", nil, &out); err != nil { + return nil, err + } + return out.Dashboards, nil +} + +// DeleteDashboard deletes a dashboard by the identifier. +func (client *Client) DeleteDashboard(id int) error { + return client.doJsonRequest("DELETE", fmt.Sprintf("/v1/dash/%d", id), nil, nil) +} + +// CreateDashboard creates a new dashboard when given a Dashboard struct. Note +// that the Id, Resource, Url and similar elements are not used in creation. +func (client *Client) CreateDashboard(dash *Dashboard) (*Dashboard, error) { + var out reqGetDashboard + if err := client.doJsonRequest("POST", "/v1/dash", dash, &out); err != nil { + return nil, err + } + return out.Dashboard, nil +} + +// UpdateDashboard in essence takes a Dashboard struct and persists it back to +// the server. Use this if you've updated your local and need to push it back. +func (client *Client) UpdateDashboard(dash *Dashboard) error { + return client.doJsonRequest("PUT", fmt.Sprintf("/v1/dash/%d", *dash.Id), + dash, nil) +} diff --git a/vendor/github.com/zorkian/go-datadog-api/datadog-accessors.go b/vendor/github.com/zorkian/go-datadog-api/datadog-accessors.go new file mode 100644 index 00000000..1f2691db --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/datadog-accessors.go @@ -0,0 +1,13375 @@ +/* + THIS FILE IS AUTOMATICALLY GENERATED BY create-accessors; DO NOT EDIT. + * Datadog API for Go + * + * Please see the included LICENSE file for licensing information. + * + * Copyright 2018 by authors and contributors. +*/ + +package datadog + +import ( + "encoding/json" +) + +// GetCreator returns the Creator field if non-nil, zero value otherwise. +func (a *Alert) GetCreator() int { + if a == nil || a.Creator == nil { + return 0 + } + return *a.Creator +} + +// GetOkCreator returns a tuple with the Creator field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *Alert) GetCreatorOk() (int, bool) { + if a == nil || a.Creator == nil { + return 0, false + } + return *a.Creator, true +} + +// HasCreator returns a boolean if a field has been set. +func (a *Alert) HasCreator() bool { + if a != nil && a.Creator != nil { + return true + } + + return false +} + +// SetCreator allocates a new a.Creator and returns the pointer to it. +func (a *Alert) SetCreator(v int) { + a.Creator = &v +} + +// GetId returns the Id field if non-nil, zero value otherwise. +func (a *Alert) GetId() int { + if a == nil || a.Id == nil { + return 0 + } + return *a.Id +} + +// GetOkId returns a tuple with the Id field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *Alert) GetIdOk() (int, bool) { + if a == nil || a.Id == nil { + return 0, false + } + return *a.Id, true +} + +// HasId returns a boolean if a field has been set. +func (a *Alert) HasId() bool { + if a != nil && a.Id != nil { + return true + } + + return false +} + +// SetId allocates a new a.Id and returns the pointer to it. +func (a *Alert) SetId(v int) { + a.Id = &v +} + +// GetMessage returns the Message field if non-nil, zero value otherwise. +func (a *Alert) GetMessage() string { + if a == nil || a.Message == nil { + return "" + } + return *a.Message +} + +// GetOkMessage returns a tuple with the Message field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *Alert) GetMessageOk() (string, bool) { + if a == nil || a.Message == nil { + return "", false + } + return *a.Message, true +} + +// HasMessage returns a boolean if a field has been set. +func (a *Alert) HasMessage() bool { + if a != nil && a.Message != nil { + return true + } + + return false +} + +// SetMessage allocates a new a.Message and returns the pointer to it. +func (a *Alert) SetMessage(v string) { + a.Message = &v +} + +// GetName returns the Name field if non-nil, zero value otherwise. +func (a *Alert) GetName() string { + if a == nil || a.Name == nil { + return "" + } + return *a.Name +} + +// GetOkName returns a tuple with the Name field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *Alert) GetNameOk() (string, bool) { + if a == nil || a.Name == nil { + return "", false + } + return *a.Name, true +} + +// HasName returns a boolean if a field has been set. +func (a *Alert) HasName() bool { + if a != nil && a.Name != nil { + return true + } + + return false +} + +// SetName allocates a new a.Name and returns the pointer to it. +func (a *Alert) SetName(v string) { + a.Name = &v +} + +// GetNotifyNoData returns the NotifyNoData field if non-nil, zero value otherwise. +func (a *Alert) GetNotifyNoData() bool { + if a == nil || a.NotifyNoData == nil { + return false + } + return *a.NotifyNoData +} + +// GetOkNotifyNoData returns a tuple with the NotifyNoData field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *Alert) GetNotifyNoDataOk() (bool, bool) { + if a == nil || a.NotifyNoData == nil { + return false, false + } + return *a.NotifyNoData, true +} + +// HasNotifyNoData returns a boolean if a field has been set. +func (a *Alert) HasNotifyNoData() bool { + if a != nil && a.NotifyNoData != nil { + return true + } + + return false +} + +// SetNotifyNoData allocates a new a.NotifyNoData and returns the pointer to it. +func (a *Alert) SetNotifyNoData(v bool) { + a.NotifyNoData = &v +} + +// GetQuery returns the Query field if non-nil, zero value otherwise. +func (a *Alert) GetQuery() string { + if a == nil || a.Query == nil { + return "" + } + return *a.Query +} + +// GetOkQuery returns a tuple with the Query field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *Alert) GetQueryOk() (string, bool) { + if a == nil || a.Query == nil { + return "", false + } + return *a.Query, true +} + +// HasQuery returns a boolean if a field has been set. +func (a *Alert) HasQuery() bool { + if a != nil && a.Query != nil { + return true + } + + return false +} + +// SetQuery allocates a new a.Query and returns the pointer to it. +func (a *Alert) SetQuery(v string) { + a.Query = &v +} + +// GetSilenced returns the Silenced field if non-nil, zero value otherwise. +func (a *Alert) GetSilenced() bool { + if a == nil || a.Silenced == nil { + return false + } + return *a.Silenced +} + +// GetOkSilenced returns a tuple with the Silenced field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *Alert) GetSilencedOk() (bool, bool) { + if a == nil || a.Silenced == nil { + return false, false + } + return *a.Silenced, true +} + +// HasSilenced returns a boolean if a field has been set. +func (a *Alert) HasSilenced() bool { + if a != nil && a.Silenced != nil { + return true + } + + return false +} + +// SetSilenced allocates a new a.Silenced and returns the pointer to it. +func (a *Alert) SetSilenced(v bool) { + a.Silenced = &v +} + +// GetState returns the State field if non-nil, zero value otherwise. +func (a *Alert) GetState() string { + if a == nil || a.State == nil { + return "" + } + return *a.State +} + +// GetOkState returns a tuple with the State field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *Alert) GetStateOk() (string, bool) { + if a == nil || a.State == nil { + return "", false + } + return *a.State, true +} + +// HasState returns a boolean if a field has been set. +func (a *Alert) HasState() bool { + if a != nil && a.State != nil { + return true + } + + return false +} + +// SetState allocates a new a.State and returns the pointer to it. +func (a *Alert) SetState(v string) { + a.State = &v +} + +// GetAddTimeframe returns the AddTimeframe field if non-nil, zero value otherwise. +func (a *AlertGraphWidget) GetAddTimeframe() bool { + if a == nil || a.AddTimeframe == nil { + return false + } + return *a.AddTimeframe +} + +// GetOkAddTimeframe returns a tuple with the AddTimeframe field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertGraphWidget) GetAddTimeframeOk() (bool, bool) { + if a == nil || a.AddTimeframe == nil { + return false, false + } + return *a.AddTimeframe, true +} + +// HasAddTimeframe returns a boolean if a field has been set. +func (a *AlertGraphWidget) HasAddTimeframe() bool { + if a != nil && a.AddTimeframe != nil { + return true + } + + return false +} + +// SetAddTimeframe allocates a new a.AddTimeframe and returns the pointer to it. +func (a *AlertGraphWidget) SetAddTimeframe(v bool) { + a.AddTimeframe = &v +} + +// GetAlertId returns the AlertId field if non-nil, zero value otherwise. +func (a *AlertGraphWidget) GetAlertId() int { + if a == nil || a.AlertId == nil { + return 0 + } + return *a.AlertId +} + +// GetOkAlertId returns a tuple with the AlertId field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertGraphWidget) GetAlertIdOk() (int, bool) { + if a == nil || a.AlertId == nil { + return 0, false + } + return *a.AlertId, true +} + +// HasAlertId returns a boolean if a field has been set. +func (a *AlertGraphWidget) HasAlertId() bool { + if a != nil && a.AlertId != nil { + return true + } + + return false +} + +// SetAlertId allocates a new a.AlertId and returns the pointer to it. +func (a *AlertGraphWidget) SetAlertId(v int) { + a.AlertId = &v +} + +// GetHeight returns the Height field if non-nil, zero value otherwise. +func (a *AlertGraphWidget) GetHeight() int { + if a == nil || a.Height == nil { + return 0 + } + return *a.Height +} + +// GetOkHeight returns a tuple with the Height field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertGraphWidget) GetHeightOk() (int, bool) { + if a == nil || a.Height == nil { + return 0, false + } + return *a.Height, true +} + +// HasHeight returns a boolean if a field has been set. +func (a *AlertGraphWidget) HasHeight() bool { + if a != nil && a.Height != nil { + return true + } + + return false +} + +// SetHeight allocates a new a.Height and returns the pointer to it. +func (a *AlertGraphWidget) SetHeight(v int) { + a.Height = &v +} + +// GetTimeframe returns the Timeframe field if non-nil, zero value otherwise. +func (a *AlertGraphWidget) GetTimeframe() string { + if a == nil || a.Timeframe == nil { + return "" + } + return *a.Timeframe +} + +// GetOkTimeframe returns a tuple with the Timeframe field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertGraphWidget) GetTimeframeOk() (string, bool) { + if a == nil || a.Timeframe == nil { + return "", false + } + return *a.Timeframe, true +} + +// HasTimeframe returns a boolean if a field has been set. +func (a *AlertGraphWidget) HasTimeframe() bool { + if a != nil && a.Timeframe != nil { + return true + } + + return false +} + +// SetTimeframe allocates a new a.Timeframe and returns the pointer to it. +func (a *AlertGraphWidget) SetTimeframe(v string) { + a.Timeframe = &v +} + +// GetTitle returns the Title field if non-nil, zero value otherwise. +func (a *AlertGraphWidget) GetTitle() bool { + if a == nil || a.Title == nil { + return false + } + return *a.Title +} + +// GetOkTitle returns a tuple with the Title field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertGraphWidget) GetTitleOk() (bool, bool) { + if a == nil || a.Title == nil { + return false, false + } + return *a.Title, true +} + +// HasTitle returns a boolean if a field has been set. +func (a *AlertGraphWidget) HasTitle() bool { + if a != nil && a.Title != nil { + return true + } + + return false +} + +// SetTitle allocates a new a.Title and returns the pointer to it. +func (a *AlertGraphWidget) SetTitle(v bool) { + a.Title = &v +} + +// GetTitleAlign returns the TitleAlign field if non-nil, zero value otherwise. +func (a *AlertGraphWidget) GetTitleAlign() string { + if a == nil || a.TitleAlign == nil { + return "" + } + return *a.TitleAlign +} + +// GetOkTitleAlign returns a tuple with the TitleAlign field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertGraphWidget) GetTitleAlignOk() (string, bool) { + if a == nil || a.TitleAlign == nil { + return "", false + } + return *a.TitleAlign, true +} + +// HasTitleAlign returns a boolean if a field has been set. +func (a *AlertGraphWidget) HasTitleAlign() bool { + if a != nil && a.TitleAlign != nil { + return true + } + + return false +} + +// SetTitleAlign allocates a new a.TitleAlign and returns the pointer to it. +func (a *AlertGraphWidget) SetTitleAlign(v string) { + a.TitleAlign = &v +} + +// GetTitleSize returns the TitleSize field if non-nil, zero value otherwise. +func (a *AlertGraphWidget) GetTitleSize() int { + if a == nil || a.TitleSize == nil { + return 0 + } + return *a.TitleSize +} + +// GetOkTitleSize returns a tuple with the TitleSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertGraphWidget) GetTitleSizeOk() (int, bool) { + if a == nil || a.TitleSize == nil { + return 0, false + } + return *a.TitleSize, true +} + +// HasTitleSize returns a boolean if a field has been set. +func (a *AlertGraphWidget) HasTitleSize() bool { + if a != nil && a.TitleSize != nil { + return true + } + + return false +} + +// SetTitleSize allocates a new a.TitleSize and returns the pointer to it. +func (a *AlertGraphWidget) SetTitleSize(v int) { + a.TitleSize = &v +} + +// GetTitleText returns the TitleText field if non-nil, zero value otherwise. +func (a *AlertGraphWidget) GetTitleText() string { + if a == nil || a.TitleText == nil { + return "" + } + return *a.TitleText +} + +// GetOkTitleText returns a tuple with the TitleText field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertGraphWidget) GetTitleTextOk() (string, bool) { + if a == nil || a.TitleText == nil { + return "", false + } + return *a.TitleText, true +} + +// HasTitleText returns a boolean if a field has been set. +func (a *AlertGraphWidget) HasTitleText() bool { + if a != nil && a.TitleText != nil { + return true + } + + return false +} + +// SetTitleText allocates a new a.TitleText and returns the pointer to it. +func (a *AlertGraphWidget) SetTitleText(v string) { + a.TitleText = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (a *AlertGraphWidget) GetType() string { + if a == nil || a.Type == nil { + return "" + } + return *a.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertGraphWidget) GetTypeOk() (string, bool) { + if a == nil || a.Type == nil { + return "", false + } + return *a.Type, true +} + +// HasType returns a boolean if a field has been set. +func (a *AlertGraphWidget) HasType() bool { + if a != nil && a.Type != nil { + return true + } + + return false +} + +// SetType allocates a new a.Type and returns the pointer to it. +func (a *AlertGraphWidget) SetType(v string) { + a.Type = &v +} + +// GetVizType returns the VizType field if non-nil, zero value otherwise. +func (a *AlertGraphWidget) GetVizType() string { + if a == nil || a.VizType == nil { + return "" + } + return *a.VizType +} + +// GetOkVizType returns a tuple with the VizType field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertGraphWidget) GetVizTypeOk() (string, bool) { + if a == nil || a.VizType == nil { + return "", false + } + return *a.VizType, true +} + +// HasVizType returns a boolean if a field has been set. +func (a *AlertGraphWidget) HasVizType() bool { + if a != nil && a.VizType != nil { + return true + } + + return false +} + +// SetVizType allocates a new a.VizType and returns the pointer to it. +func (a *AlertGraphWidget) SetVizType(v string) { + a.VizType = &v +} + +// GetWidth returns the Width field if non-nil, zero value otherwise. +func (a *AlertGraphWidget) GetWidth() int { + if a == nil || a.Width == nil { + return 0 + } + return *a.Width +} + +// GetOkWidth returns a tuple with the Width field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertGraphWidget) GetWidthOk() (int, bool) { + if a == nil || a.Width == nil { + return 0, false + } + return *a.Width, true +} + +// HasWidth returns a boolean if a field has been set. +func (a *AlertGraphWidget) HasWidth() bool { + if a != nil && a.Width != nil { + return true + } + + return false +} + +// SetWidth allocates a new a.Width and returns the pointer to it. +func (a *AlertGraphWidget) SetWidth(v int) { + a.Width = &v +} + +// GetX returns the X field if non-nil, zero value otherwise. +func (a *AlertGraphWidget) GetX() int { + if a == nil || a.X == nil { + return 0 + } + return *a.X +} + +// GetOkX returns a tuple with the X field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertGraphWidget) GetXOk() (int, bool) { + if a == nil || a.X == nil { + return 0, false + } + return *a.X, true +} + +// HasX returns a boolean if a field has been set. +func (a *AlertGraphWidget) HasX() bool { + if a != nil && a.X != nil { + return true + } + + return false +} + +// SetX allocates a new a.X and returns the pointer to it. +func (a *AlertGraphWidget) SetX(v int) { + a.X = &v +} + +// GetY returns the Y field if non-nil, zero value otherwise. +func (a *AlertGraphWidget) GetY() int { + if a == nil || a.Y == nil { + return 0 + } + return *a.Y +} + +// GetOkY returns a tuple with the Y field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertGraphWidget) GetYOk() (int, bool) { + if a == nil || a.Y == nil { + return 0, false + } + return *a.Y, true +} + +// HasY returns a boolean if a field has been set. +func (a *AlertGraphWidget) HasY() bool { + if a != nil && a.Y != nil { + return true + } + + return false +} + +// SetY allocates a new a.Y and returns the pointer to it. +func (a *AlertGraphWidget) SetY(v int) { + a.Y = &v +} + +// GetAddTimeframe returns the AddTimeframe field if non-nil, zero value otherwise. +func (a *AlertValueWidget) GetAddTimeframe() bool { + if a == nil || a.AddTimeframe == nil { + return false + } + return *a.AddTimeframe +} + +// GetOkAddTimeframe returns a tuple with the AddTimeframe field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertValueWidget) GetAddTimeframeOk() (bool, bool) { + if a == nil || a.AddTimeframe == nil { + return false, false + } + return *a.AddTimeframe, true +} + +// HasAddTimeframe returns a boolean if a field has been set. +func (a *AlertValueWidget) HasAddTimeframe() bool { + if a != nil && a.AddTimeframe != nil { + return true + } + + return false +} + +// SetAddTimeframe allocates a new a.AddTimeframe and returns the pointer to it. +func (a *AlertValueWidget) SetAddTimeframe(v bool) { + a.AddTimeframe = &v +} + +// GetAlertId returns the AlertId field if non-nil, zero value otherwise. +func (a *AlertValueWidget) GetAlertId() int { + if a == nil || a.AlertId == nil { + return 0 + } + return *a.AlertId +} + +// GetOkAlertId returns a tuple with the AlertId field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertValueWidget) GetAlertIdOk() (int, bool) { + if a == nil || a.AlertId == nil { + return 0, false + } + return *a.AlertId, true +} + +// HasAlertId returns a boolean if a field has been set. +func (a *AlertValueWidget) HasAlertId() bool { + if a != nil && a.AlertId != nil { + return true + } + + return false +} + +// SetAlertId allocates a new a.AlertId and returns the pointer to it. +func (a *AlertValueWidget) SetAlertId(v int) { + a.AlertId = &v +} + +// GetHeight returns the Height field if non-nil, zero value otherwise. +func (a *AlertValueWidget) GetHeight() int { + if a == nil || a.Height == nil { + return 0 + } + return *a.Height +} + +// GetOkHeight returns a tuple with the Height field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertValueWidget) GetHeightOk() (int, bool) { + if a == nil || a.Height == nil { + return 0, false + } + return *a.Height, true +} + +// HasHeight returns a boolean if a field has been set. +func (a *AlertValueWidget) HasHeight() bool { + if a != nil && a.Height != nil { + return true + } + + return false +} + +// SetHeight allocates a new a.Height and returns the pointer to it. +func (a *AlertValueWidget) SetHeight(v int) { + a.Height = &v +} + +// GetPrecision returns the Precision field if non-nil, zero value otherwise. +func (a *AlertValueWidget) GetPrecision() int { + if a == nil || a.Precision == nil { + return 0 + } + return *a.Precision +} + +// GetOkPrecision returns a tuple with the Precision field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertValueWidget) GetPrecisionOk() (int, bool) { + if a == nil || a.Precision == nil { + return 0, false + } + return *a.Precision, true +} + +// HasPrecision returns a boolean if a field has been set. +func (a *AlertValueWidget) HasPrecision() bool { + if a != nil && a.Precision != nil { + return true + } + + return false +} + +// SetPrecision allocates a new a.Precision and returns the pointer to it. +func (a *AlertValueWidget) SetPrecision(v int) { + a.Precision = &v +} + +// GetTextAlign returns the TextAlign field if non-nil, zero value otherwise. +func (a *AlertValueWidget) GetTextAlign() string { + if a == nil || a.TextAlign == nil { + return "" + } + return *a.TextAlign +} + +// GetOkTextAlign returns a tuple with the TextAlign field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertValueWidget) GetTextAlignOk() (string, bool) { + if a == nil || a.TextAlign == nil { + return "", false + } + return *a.TextAlign, true +} + +// HasTextAlign returns a boolean if a field has been set. +func (a *AlertValueWidget) HasTextAlign() bool { + if a != nil && a.TextAlign != nil { + return true + } + + return false +} + +// SetTextAlign allocates a new a.TextAlign and returns the pointer to it. +func (a *AlertValueWidget) SetTextAlign(v string) { + a.TextAlign = &v +} + +// GetTextSize returns the TextSize field if non-nil, zero value otherwise. +func (a *AlertValueWidget) GetTextSize() string { + if a == nil || a.TextSize == nil { + return "" + } + return *a.TextSize +} + +// GetOkTextSize returns a tuple with the TextSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertValueWidget) GetTextSizeOk() (string, bool) { + if a == nil || a.TextSize == nil { + return "", false + } + return *a.TextSize, true +} + +// HasTextSize returns a boolean if a field has been set. +func (a *AlertValueWidget) HasTextSize() bool { + if a != nil && a.TextSize != nil { + return true + } + + return false +} + +// SetTextSize allocates a new a.TextSize and returns the pointer to it. +func (a *AlertValueWidget) SetTextSize(v string) { + a.TextSize = &v +} + +// GetTimeframe returns the Timeframe field if non-nil, zero value otherwise. +func (a *AlertValueWidget) GetTimeframe() string { + if a == nil || a.Timeframe == nil { + return "" + } + return *a.Timeframe +} + +// GetOkTimeframe returns a tuple with the Timeframe field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertValueWidget) GetTimeframeOk() (string, bool) { + if a == nil || a.Timeframe == nil { + return "", false + } + return *a.Timeframe, true +} + +// HasTimeframe returns a boolean if a field has been set. +func (a *AlertValueWidget) HasTimeframe() bool { + if a != nil && a.Timeframe != nil { + return true + } + + return false +} + +// SetTimeframe allocates a new a.Timeframe and returns the pointer to it. +func (a *AlertValueWidget) SetTimeframe(v string) { + a.Timeframe = &v +} + +// GetTitle returns the Title field if non-nil, zero value otherwise. +func (a *AlertValueWidget) GetTitle() bool { + if a == nil || a.Title == nil { + return false + } + return *a.Title +} + +// GetOkTitle returns a tuple with the Title field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertValueWidget) GetTitleOk() (bool, bool) { + if a == nil || a.Title == nil { + return false, false + } + return *a.Title, true +} + +// HasTitle returns a boolean if a field has been set. +func (a *AlertValueWidget) HasTitle() bool { + if a != nil && a.Title != nil { + return true + } + + return false +} + +// SetTitle allocates a new a.Title and returns the pointer to it. +func (a *AlertValueWidget) SetTitle(v bool) { + a.Title = &v +} + +// GetTitleAlign returns the TitleAlign field if non-nil, zero value otherwise. +func (a *AlertValueWidget) GetTitleAlign() string { + if a == nil || a.TitleAlign == nil { + return "" + } + return *a.TitleAlign +} + +// GetOkTitleAlign returns a tuple with the TitleAlign field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertValueWidget) GetTitleAlignOk() (string, bool) { + if a == nil || a.TitleAlign == nil { + return "", false + } + return *a.TitleAlign, true +} + +// HasTitleAlign returns a boolean if a field has been set. +func (a *AlertValueWidget) HasTitleAlign() bool { + if a != nil && a.TitleAlign != nil { + return true + } + + return false +} + +// SetTitleAlign allocates a new a.TitleAlign and returns the pointer to it. +func (a *AlertValueWidget) SetTitleAlign(v string) { + a.TitleAlign = &v +} + +// GetTitleSize returns the TitleSize field if non-nil, zero value otherwise. +func (a *AlertValueWidget) GetTitleSize() int { + if a == nil || a.TitleSize == nil { + return 0 + } + return *a.TitleSize +} + +// GetOkTitleSize returns a tuple with the TitleSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertValueWidget) GetTitleSizeOk() (int, bool) { + if a == nil || a.TitleSize == nil { + return 0, false + } + return *a.TitleSize, true +} + +// HasTitleSize returns a boolean if a field has been set. +func (a *AlertValueWidget) HasTitleSize() bool { + if a != nil && a.TitleSize != nil { + return true + } + + return false +} + +// SetTitleSize allocates a new a.TitleSize and returns the pointer to it. +func (a *AlertValueWidget) SetTitleSize(v int) { + a.TitleSize = &v +} + +// GetTitleText returns the TitleText field if non-nil, zero value otherwise. +func (a *AlertValueWidget) GetTitleText() string { + if a == nil || a.TitleText == nil { + return "" + } + return *a.TitleText +} + +// GetOkTitleText returns a tuple with the TitleText field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertValueWidget) GetTitleTextOk() (string, bool) { + if a == nil || a.TitleText == nil { + return "", false + } + return *a.TitleText, true +} + +// HasTitleText returns a boolean if a field has been set. +func (a *AlertValueWidget) HasTitleText() bool { + if a != nil && a.TitleText != nil { + return true + } + + return false +} + +// SetTitleText allocates a new a.TitleText and returns the pointer to it. +func (a *AlertValueWidget) SetTitleText(v string) { + a.TitleText = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (a *AlertValueWidget) GetType() string { + if a == nil || a.Type == nil { + return "" + } + return *a.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertValueWidget) GetTypeOk() (string, bool) { + if a == nil || a.Type == nil { + return "", false + } + return *a.Type, true +} + +// HasType returns a boolean if a field has been set. +func (a *AlertValueWidget) HasType() bool { + if a != nil && a.Type != nil { + return true + } + + return false +} + +// SetType allocates a new a.Type and returns the pointer to it. +func (a *AlertValueWidget) SetType(v string) { + a.Type = &v +} + +// GetUnit returns the Unit field if non-nil, zero value otherwise. +func (a *AlertValueWidget) GetUnit() string { + if a == nil || a.Unit == nil { + return "" + } + return *a.Unit +} + +// GetOkUnit returns a tuple with the Unit field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertValueWidget) GetUnitOk() (string, bool) { + if a == nil || a.Unit == nil { + return "", false + } + return *a.Unit, true +} + +// HasUnit returns a boolean if a field has been set. +func (a *AlertValueWidget) HasUnit() bool { + if a != nil && a.Unit != nil { + return true + } + + return false +} + +// SetUnit allocates a new a.Unit and returns the pointer to it. +func (a *AlertValueWidget) SetUnit(v string) { + a.Unit = &v +} + +// GetWidth returns the Width field if non-nil, zero value otherwise. +func (a *AlertValueWidget) GetWidth() int { + if a == nil || a.Width == nil { + return 0 + } + return *a.Width +} + +// GetOkWidth returns a tuple with the Width field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertValueWidget) GetWidthOk() (int, bool) { + if a == nil || a.Width == nil { + return 0, false + } + return *a.Width, true +} + +// HasWidth returns a boolean if a field has been set. +func (a *AlertValueWidget) HasWidth() bool { + if a != nil && a.Width != nil { + return true + } + + return false +} + +// SetWidth allocates a new a.Width and returns the pointer to it. +func (a *AlertValueWidget) SetWidth(v int) { + a.Width = &v +} + +// GetX returns the X field if non-nil, zero value otherwise. +func (a *AlertValueWidget) GetX() int { + if a == nil || a.X == nil { + return 0 + } + return *a.X +} + +// GetOkX returns a tuple with the X field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertValueWidget) GetXOk() (int, bool) { + if a == nil || a.X == nil { + return 0, false + } + return *a.X, true +} + +// HasX returns a boolean if a field has been set. +func (a *AlertValueWidget) HasX() bool { + if a != nil && a.X != nil { + return true + } + + return false +} + +// SetX allocates a new a.X and returns the pointer to it. +func (a *AlertValueWidget) SetX(v int) { + a.X = &v +} + +// GetY returns the Y field if non-nil, zero value otherwise. +func (a *AlertValueWidget) GetY() int { + if a == nil || a.Y == nil { + return 0 + } + return *a.Y +} + +// GetOkY returns a tuple with the Y field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (a *AlertValueWidget) GetYOk() (int, bool) { + if a == nil || a.Y == nil { + return 0, false + } + return *a.Y, true +} + +// HasY returns a boolean if a field has been set. +func (a *AlertValueWidget) HasY() bool { + if a != nil && a.Y != nil { + return true + } + + return false +} + +// SetY allocates a new a.Y and returns the pointer to it. +func (a *AlertValueWidget) SetY(v int) { + a.Y = &v +} + +// GetAggregator returns the Aggregator field if non-nil, zero value otherwise. +func (c *ChangeWidget) GetAggregator() string { + if c == nil || c.Aggregator == nil { + return "" + } + return *c.Aggregator +} + +// GetOkAggregator returns a tuple with the Aggregator field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *ChangeWidget) GetAggregatorOk() (string, bool) { + if c == nil || c.Aggregator == nil { + return "", false + } + return *c.Aggregator, true +} + +// HasAggregator returns a boolean if a field has been set. +func (c *ChangeWidget) HasAggregator() bool { + if c != nil && c.Aggregator != nil { + return true + } + + return false +} + +// SetAggregator allocates a new c.Aggregator and returns the pointer to it. +func (c *ChangeWidget) SetAggregator(v string) { + c.Aggregator = &v +} + +// GetHeight returns the Height field if non-nil, zero value otherwise. +func (c *ChangeWidget) GetHeight() int { + if c == nil || c.Height == nil { + return 0 + } + return *c.Height +} + +// GetOkHeight returns a tuple with the Height field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *ChangeWidget) GetHeightOk() (int, bool) { + if c == nil || c.Height == nil { + return 0, false + } + return *c.Height, true +} + +// HasHeight returns a boolean if a field has been set. +func (c *ChangeWidget) HasHeight() bool { + if c != nil && c.Height != nil { + return true + } + + return false +} + +// SetHeight allocates a new c.Height and returns the pointer to it. +func (c *ChangeWidget) SetHeight(v int) { + c.Height = &v +} + +// GetTileDef returns the TileDef field if non-nil, zero value otherwise. +func (c *ChangeWidget) GetTileDef() TileDef { + if c == nil || c.TileDef == nil { + return TileDef{} + } + return *c.TileDef +} + +// GetOkTileDef returns a tuple with the TileDef field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *ChangeWidget) GetTileDefOk() (TileDef, bool) { + if c == nil || c.TileDef == nil { + return TileDef{}, false + } + return *c.TileDef, true +} + +// HasTileDef returns a boolean if a field has been set. +func (c *ChangeWidget) HasTileDef() bool { + if c != nil && c.TileDef != nil { + return true + } + + return false +} + +// SetTileDef allocates a new c.TileDef and returns the pointer to it. +func (c *ChangeWidget) SetTileDef(v TileDef) { + c.TileDef = &v +} + +// GetTitle returns the Title field if non-nil, zero value otherwise. +func (c *ChangeWidget) GetTitle() bool { + if c == nil || c.Title == nil { + return false + } + return *c.Title +} + +// GetOkTitle returns a tuple with the Title field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *ChangeWidget) GetTitleOk() (bool, bool) { + if c == nil || c.Title == nil { + return false, false + } + return *c.Title, true +} + +// HasTitle returns a boolean if a field has been set. +func (c *ChangeWidget) HasTitle() bool { + if c != nil && c.Title != nil { + return true + } + + return false +} + +// SetTitle allocates a new c.Title and returns the pointer to it. +func (c *ChangeWidget) SetTitle(v bool) { + c.Title = &v +} + +// GetTitleAlign returns the TitleAlign field if non-nil, zero value otherwise. +func (c *ChangeWidget) GetTitleAlign() string { + if c == nil || c.TitleAlign == nil { + return "" + } + return *c.TitleAlign +} + +// GetOkTitleAlign returns a tuple with the TitleAlign field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *ChangeWidget) GetTitleAlignOk() (string, bool) { + if c == nil || c.TitleAlign == nil { + return "", false + } + return *c.TitleAlign, true +} + +// HasTitleAlign returns a boolean if a field has been set. +func (c *ChangeWidget) HasTitleAlign() bool { + if c != nil && c.TitleAlign != nil { + return true + } + + return false +} + +// SetTitleAlign allocates a new c.TitleAlign and returns the pointer to it. +func (c *ChangeWidget) SetTitleAlign(v string) { + c.TitleAlign = &v +} + +// GetTitleSize returns the TitleSize field if non-nil, zero value otherwise. +func (c *ChangeWidget) GetTitleSize() int { + if c == nil || c.TitleSize == nil { + return 0 + } + return *c.TitleSize +} + +// GetOkTitleSize returns a tuple with the TitleSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *ChangeWidget) GetTitleSizeOk() (int, bool) { + if c == nil || c.TitleSize == nil { + return 0, false + } + return *c.TitleSize, true +} + +// HasTitleSize returns a boolean if a field has been set. +func (c *ChangeWidget) HasTitleSize() bool { + if c != nil && c.TitleSize != nil { + return true + } + + return false +} + +// SetTitleSize allocates a new c.TitleSize and returns the pointer to it. +func (c *ChangeWidget) SetTitleSize(v int) { + c.TitleSize = &v +} + +// GetTitleText returns the TitleText field if non-nil, zero value otherwise. +func (c *ChangeWidget) GetTitleText() string { + if c == nil || c.TitleText == nil { + return "" + } + return *c.TitleText +} + +// GetOkTitleText returns a tuple with the TitleText field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *ChangeWidget) GetTitleTextOk() (string, bool) { + if c == nil || c.TitleText == nil { + return "", false + } + return *c.TitleText, true +} + +// HasTitleText returns a boolean if a field has been set. +func (c *ChangeWidget) HasTitleText() bool { + if c != nil && c.TitleText != nil { + return true + } + + return false +} + +// SetTitleText allocates a new c.TitleText and returns the pointer to it. +func (c *ChangeWidget) SetTitleText(v string) { + c.TitleText = &v +} + +// GetWidth returns the Width field if non-nil, zero value otherwise. +func (c *ChangeWidget) GetWidth() int { + if c == nil || c.Width == nil { + return 0 + } + return *c.Width +} + +// GetOkWidth returns a tuple with the Width field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *ChangeWidget) GetWidthOk() (int, bool) { + if c == nil || c.Width == nil { + return 0, false + } + return *c.Width, true +} + +// HasWidth returns a boolean if a field has been set. +func (c *ChangeWidget) HasWidth() bool { + if c != nil && c.Width != nil { + return true + } + + return false +} + +// SetWidth allocates a new c.Width and returns the pointer to it. +func (c *ChangeWidget) SetWidth(v int) { + c.Width = &v +} + +// GetX returns the X field if non-nil, zero value otherwise. +func (c *ChangeWidget) GetX() int { + if c == nil || c.X == nil { + return 0 + } + return *c.X +} + +// GetOkX returns a tuple with the X field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *ChangeWidget) GetXOk() (int, bool) { + if c == nil || c.X == nil { + return 0, false + } + return *c.X, true +} + +// HasX returns a boolean if a field has been set. +func (c *ChangeWidget) HasX() bool { + if c != nil && c.X != nil { + return true + } + + return false +} + +// SetX allocates a new c.X and returns the pointer to it. +func (c *ChangeWidget) SetX(v int) { + c.X = &v +} + +// GetY returns the Y field if non-nil, zero value otherwise. +func (c *ChangeWidget) GetY() int { + if c == nil || c.Y == nil { + return 0 + } + return *c.Y +} + +// GetOkY returns a tuple with the Y field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *ChangeWidget) GetYOk() (int, bool) { + if c == nil || c.Y == nil { + return 0, false + } + return *c.Y, true +} + +// HasY returns a boolean if a field has been set. +func (c *ChangeWidget) HasY() bool { + if c != nil && c.Y != nil { + return true + } + + return false +} + +// SetY allocates a new c.Y and returns the pointer to it. +func (c *ChangeWidget) SetY(v int) { + c.Y = &v +} + +// GetAccount returns the Account field if non-nil, zero value otherwise. +func (c *ChannelSlackRequest) GetAccount() string { + if c == nil || c.Account == nil { + return "" + } + return *c.Account +} + +// GetOkAccount returns a tuple with the Account field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *ChannelSlackRequest) GetAccountOk() (string, bool) { + if c == nil || c.Account == nil { + return "", false + } + return *c.Account, true +} + +// HasAccount returns a boolean if a field has been set. +func (c *ChannelSlackRequest) HasAccount() bool { + if c != nil && c.Account != nil { + return true + } + + return false +} + +// SetAccount allocates a new c.Account and returns the pointer to it. +func (c *ChannelSlackRequest) SetAccount(v string) { + c.Account = &v +} + +// GetChannelName returns the ChannelName field if non-nil, zero value otherwise. +func (c *ChannelSlackRequest) GetChannelName() string { + if c == nil || c.ChannelName == nil { + return "" + } + return *c.ChannelName +} + +// GetOkChannelName returns a tuple with the ChannelName field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *ChannelSlackRequest) GetChannelNameOk() (string, bool) { + if c == nil || c.ChannelName == nil { + return "", false + } + return *c.ChannelName, true +} + +// HasChannelName returns a boolean if a field has been set. +func (c *ChannelSlackRequest) HasChannelName() bool { + if c != nil && c.ChannelName != nil { + return true + } + + return false +} + +// SetChannelName allocates a new c.ChannelName and returns the pointer to it. +func (c *ChannelSlackRequest) SetChannelName(v string) { + c.ChannelName = &v +} + +// GetTransferAllUserComments returns the TransferAllUserComments field if non-nil, zero value otherwise. +func (c *ChannelSlackRequest) GetTransferAllUserComments() bool { + if c == nil || c.TransferAllUserComments == nil { + return false + } + return *c.TransferAllUserComments +} + +// GetOkTransferAllUserComments returns a tuple with the TransferAllUserComments field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *ChannelSlackRequest) GetTransferAllUserCommentsOk() (bool, bool) { + if c == nil || c.TransferAllUserComments == nil { + return false, false + } + return *c.TransferAllUserComments, true +} + +// HasTransferAllUserComments returns a boolean if a field has been set. +func (c *ChannelSlackRequest) HasTransferAllUserComments() bool { + if c != nil && c.TransferAllUserComments != nil { + return true + } + + return false +} + +// SetTransferAllUserComments allocates a new c.TransferAllUserComments and returns the pointer to it. +func (c *ChannelSlackRequest) SetTransferAllUserComments(v bool) { + c.TransferAllUserComments = &v +} + +// GetCheck returns the Check field if non-nil, zero value otherwise. +func (c *Check) GetCheck() string { + if c == nil || c.Check == nil { + return "" + } + return *c.Check +} + +// GetOkCheck returns a tuple with the Check field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *Check) GetCheckOk() (string, bool) { + if c == nil || c.Check == nil { + return "", false + } + return *c.Check, true +} + +// HasCheck returns a boolean if a field has been set. +func (c *Check) HasCheck() bool { + if c != nil && c.Check != nil { + return true + } + + return false +} + +// SetCheck allocates a new c.Check and returns the pointer to it. +func (c *Check) SetCheck(v string) { + c.Check = &v +} + +// GetHostName returns the HostName field if non-nil, zero value otherwise. +func (c *Check) GetHostName() string { + if c == nil || c.HostName == nil { + return "" + } + return *c.HostName +} + +// GetOkHostName returns a tuple with the HostName field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *Check) GetHostNameOk() (string, bool) { + if c == nil || c.HostName == nil { + return "", false + } + return *c.HostName, true +} + +// HasHostName returns a boolean if a field has been set. +func (c *Check) HasHostName() bool { + if c != nil && c.HostName != nil { + return true + } + + return false +} + +// SetHostName allocates a new c.HostName and returns the pointer to it. +func (c *Check) SetHostName(v string) { + c.HostName = &v +} + +// GetMessage returns the Message field if non-nil, zero value otherwise. +func (c *Check) GetMessage() string { + if c == nil || c.Message == nil { + return "" + } + return *c.Message +} + +// GetOkMessage returns a tuple with the Message field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *Check) GetMessageOk() (string, bool) { + if c == nil || c.Message == nil { + return "", false + } + return *c.Message, true +} + +// HasMessage returns a boolean if a field has been set. +func (c *Check) HasMessage() bool { + if c != nil && c.Message != nil { + return true + } + + return false +} + +// SetMessage allocates a new c.Message and returns the pointer to it. +func (c *Check) SetMessage(v string) { + c.Message = &v +} + +// GetStatus returns the Status field if non-nil, zero value otherwise. +func (c *Check) GetStatus() Status { + if c == nil || c.Status == nil { + return 0 + } + return *c.Status +} + +// GetOkStatus returns a tuple with the Status field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *Check) GetStatusOk() (Status, bool) { + if c == nil || c.Status == nil { + return 0, false + } + return *c.Status, true +} + +// HasStatus returns a boolean if a field has been set. +func (c *Check) HasStatus() bool { + if c != nil && c.Status != nil { + return true + } + + return false +} + +// SetStatus allocates a new c.Status and returns the pointer to it. +func (c *Check) SetStatus(v Status) { + c.Status = &v +} + +// GetTimestamp returns the Timestamp field if non-nil, zero value otherwise. +func (c *Check) GetTimestamp() string { + if c == nil || c.Timestamp == nil { + return "" + } + return *c.Timestamp +} + +// GetOkTimestamp returns a tuple with the Timestamp field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *Check) GetTimestampOk() (string, bool) { + if c == nil || c.Timestamp == nil { + return "", false + } + return *c.Timestamp, true +} + +// HasTimestamp returns a boolean if a field has been set. +func (c *Check) HasTimestamp() bool { + if c != nil && c.Timestamp != nil { + return true + } + + return false +} + +// SetTimestamp allocates a new c.Timestamp and returns the pointer to it. +func (c *Check) SetTimestamp(v string) { + c.Timestamp = &v +} + +// GetCheck returns the Check field if non-nil, zero value otherwise. +func (c *CheckStatusWidget) GetCheck() string { + if c == nil || c.Check == nil { + return "" + } + return *c.Check +} + +// GetOkCheck returns a tuple with the Check field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *CheckStatusWidget) GetCheckOk() (string, bool) { + if c == nil || c.Check == nil { + return "", false + } + return *c.Check, true +} + +// HasCheck returns a boolean if a field has been set. +func (c *CheckStatusWidget) HasCheck() bool { + if c != nil && c.Check != nil { + return true + } + + return false +} + +// SetCheck allocates a new c.Check and returns the pointer to it. +func (c *CheckStatusWidget) SetCheck(v string) { + c.Check = &v +} + +// GetGroup returns the Group field if non-nil, zero value otherwise. +func (c *CheckStatusWidget) GetGroup() string { + if c == nil || c.Group == nil { + return "" + } + return *c.Group +} + +// GetOkGroup returns a tuple with the Group field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *CheckStatusWidget) GetGroupOk() (string, bool) { + if c == nil || c.Group == nil { + return "", false + } + return *c.Group, true +} + +// HasGroup returns a boolean if a field has been set. +func (c *CheckStatusWidget) HasGroup() bool { + if c != nil && c.Group != nil { + return true + } + + return false +} + +// SetGroup allocates a new c.Group and returns the pointer to it. +func (c *CheckStatusWidget) SetGroup(v string) { + c.Group = &v +} + +// GetGrouping returns the Grouping field if non-nil, zero value otherwise. +func (c *CheckStatusWidget) GetGrouping() string { + if c == nil || c.Grouping == nil { + return "" + } + return *c.Grouping +} + +// GetOkGrouping returns a tuple with the Grouping field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *CheckStatusWidget) GetGroupingOk() (string, bool) { + if c == nil || c.Grouping == nil { + return "", false + } + return *c.Grouping, true +} + +// HasGrouping returns a boolean if a field has been set. +func (c *CheckStatusWidget) HasGrouping() bool { + if c != nil && c.Grouping != nil { + return true + } + + return false +} + +// SetGrouping allocates a new c.Grouping and returns the pointer to it. +func (c *CheckStatusWidget) SetGrouping(v string) { + c.Grouping = &v +} + +// GetHeight returns the Height field if non-nil, zero value otherwise. +func (c *CheckStatusWidget) GetHeight() int { + if c == nil || c.Height == nil { + return 0 + } + return *c.Height +} + +// GetOkHeight returns a tuple with the Height field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *CheckStatusWidget) GetHeightOk() (int, bool) { + if c == nil || c.Height == nil { + return 0, false + } + return *c.Height, true +} + +// HasHeight returns a boolean if a field has been set. +func (c *CheckStatusWidget) HasHeight() bool { + if c != nil && c.Height != nil { + return true + } + + return false +} + +// SetHeight allocates a new c.Height and returns the pointer to it. +func (c *CheckStatusWidget) SetHeight(v int) { + c.Height = &v +} + +// GetTags returns the Tags field if non-nil, zero value otherwise. +func (c *CheckStatusWidget) GetTags() string { + if c == nil || c.Tags == nil { + return "" + } + return *c.Tags +} + +// GetOkTags returns a tuple with the Tags field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *CheckStatusWidget) GetTagsOk() (string, bool) { + if c == nil || c.Tags == nil { + return "", false + } + return *c.Tags, true +} + +// HasTags returns a boolean if a field has been set. +func (c *CheckStatusWidget) HasTags() bool { + if c != nil && c.Tags != nil { + return true + } + + return false +} + +// SetTags allocates a new c.Tags and returns the pointer to it. +func (c *CheckStatusWidget) SetTags(v string) { + c.Tags = &v +} + +// GetTextAlign returns the TextAlign field if non-nil, zero value otherwise. +func (c *CheckStatusWidget) GetTextAlign() string { + if c == nil || c.TextAlign == nil { + return "" + } + return *c.TextAlign +} + +// GetOkTextAlign returns a tuple with the TextAlign field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *CheckStatusWidget) GetTextAlignOk() (string, bool) { + if c == nil || c.TextAlign == nil { + return "", false + } + return *c.TextAlign, true +} + +// HasTextAlign returns a boolean if a field has been set. +func (c *CheckStatusWidget) HasTextAlign() bool { + if c != nil && c.TextAlign != nil { + return true + } + + return false +} + +// SetTextAlign allocates a new c.TextAlign and returns the pointer to it. +func (c *CheckStatusWidget) SetTextAlign(v string) { + c.TextAlign = &v +} + +// GetTextSize returns the TextSize field if non-nil, zero value otherwise. +func (c *CheckStatusWidget) GetTextSize() string { + if c == nil || c.TextSize == nil { + return "" + } + return *c.TextSize +} + +// GetOkTextSize returns a tuple with the TextSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *CheckStatusWidget) GetTextSizeOk() (string, bool) { + if c == nil || c.TextSize == nil { + return "", false + } + return *c.TextSize, true +} + +// HasTextSize returns a boolean if a field has been set. +func (c *CheckStatusWidget) HasTextSize() bool { + if c != nil && c.TextSize != nil { + return true + } + + return false +} + +// SetTextSize allocates a new c.TextSize and returns the pointer to it. +func (c *CheckStatusWidget) SetTextSize(v string) { + c.TextSize = &v +} + +// GetTimeframe returns the Timeframe field if non-nil, zero value otherwise. +func (c *CheckStatusWidget) GetTimeframe() string { + if c == nil || c.Timeframe == nil { + return "" + } + return *c.Timeframe +} + +// GetOkTimeframe returns a tuple with the Timeframe field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *CheckStatusWidget) GetTimeframeOk() (string, bool) { + if c == nil || c.Timeframe == nil { + return "", false + } + return *c.Timeframe, true +} + +// HasTimeframe returns a boolean if a field has been set. +func (c *CheckStatusWidget) HasTimeframe() bool { + if c != nil && c.Timeframe != nil { + return true + } + + return false +} + +// SetTimeframe allocates a new c.Timeframe and returns the pointer to it. +func (c *CheckStatusWidget) SetTimeframe(v string) { + c.Timeframe = &v +} + +// GetTitle returns the Title field if non-nil, zero value otherwise. +func (c *CheckStatusWidget) GetTitle() bool { + if c == nil || c.Title == nil { + return false + } + return *c.Title +} + +// GetOkTitle returns a tuple with the Title field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *CheckStatusWidget) GetTitleOk() (bool, bool) { + if c == nil || c.Title == nil { + return false, false + } + return *c.Title, true +} + +// HasTitle returns a boolean if a field has been set. +func (c *CheckStatusWidget) HasTitle() bool { + if c != nil && c.Title != nil { + return true + } + + return false +} + +// SetTitle allocates a new c.Title and returns the pointer to it. +func (c *CheckStatusWidget) SetTitle(v bool) { + c.Title = &v +} + +// GetTitleAlign returns the TitleAlign field if non-nil, zero value otherwise. +func (c *CheckStatusWidget) GetTitleAlign() string { + if c == nil || c.TitleAlign == nil { + return "" + } + return *c.TitleAlign +} + +// GetOkTitleAlign returns a tuple with the TitleAlign field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *CheckStatusWidget) GetTitleAlignOk() (string, bool) { + if c == nil || c.TitleAlign == nil { + return "", false + } + return *c.TitleAlign, true +} + +// HasTitleAlign returns a boolean if a field has been set. +func (c *CheckStatusWidget) HasTitleAlign() bool { + if c != nil && c.TitleAlign != nil { + return true + } + + return false +} + +// SetTitleAlign allocates a new c.TitleAlign and returns the pointer to it. +func (c *CheckStatusWidget) SetTitleAlign(v string) { + c.TitleAlign = &v +} + +// GetTitleSize returns the TitleSize field if non-nil, zero value otherwise. +func (c *CheckStatusWidget) GetTitleSize() int { + if c == nil || c.TitleSize == nil { + return 0 + } + return *c.TitleSize +} + +// GetOkTitleSize returns a tuple with the TitleSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *CheckStatusWidget) GetTitleSizeOk() (int, bool) { + if c == nil || c.TitleSize == nil { + return 0, false + } + return *c.TitleSize, true +} + +// HasTitleSize returns a boolean if a field has been set. +func (c *CheckStatusWidget) HasTitleSize() bool { + if c != nil && c.TitleSize != nil { + return true + } + + return false +} + +// SetTitleSize allocates a new c.TitleSize and returns the pointer to it. +func (c *CheckStatusWidget) SetTitleSize(v int) { + c.TitleSize = &v +} + +// GetTitleText returns the TitleText field if non-nil, zero value otherwise. +func (c *CheckStatusWidget) GetTitleText() string { + if c == nil || c.TitleText == nil { + return "" + } + return *c.TitleText +} + +// GetOkTitleText returns a tuple with the TitleText field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *CheckStatusWidget) GetTitleTextOk() (string, bool) { + if c == nil || c.TitleText == nil { + return "", false + } + return *c.TitleText, true +} + +// HasTitleText returns a boolean if a field has been set. +func (c *CheckStatusWidget) HasTitleText() bool { + if c != nil && c.TitleText != nil { + return true + } + + return false +} + +// SetTitleText allocates a new c.TitleText and returns the pointer to it. +func (c *CheckStatusWidget) SetTitleText(v string) { + c.TitleText = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (c *CheckStatusWidget) GetType() string { + if c == nil || c.Type == nil { + return "" + } + return *c.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *CheckStatusWidget) GetTypeOk() (string, bool) { + if c == nil || c.Type == nil { + return "", false + } + return *c.Type, true +} + +// HasType returns a boolean if a field has been set. +func (c *CheckStatusWidget) HasType() bool { + if c != nil && c.Type != nil { + return true + } + + return false +} + +// SetType allocates a new c.Type and returns the pointer to it. +func (c *CheckStatusWidget) SetType(v string) { + c.Type = &v +} + +// GetWidth returns the Width field if non-nil, zero value otherwise. +func (c *CheckStatusWidget) GetWidth() int { + if c == nil || c.Width == nil { + return 0 + } + return *c.Width +} + +// GetOkWidth returns a tuple with the Width field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *CheckStatusWidget) GetWidthOk() (int, bool) { + if c == nil || c.Width == nil { + return 0, false + } + return *c.Width, true +} + +// HasWidth returns a boolean if a field has been set. +func (c *CheckStatusWidget) HasWidth() bool { + if c != nil && c.Width != nil { + return true + } + + return false +} + +// SetWidth allocates a new c.Width and returns the pointer to it. +func (c *CheckStatusWidget) SetWidth(v int) { + c.Width = &v +} + +// GetX returns the X field if non-nil, zero value otherwise. +func (c *CheckStatusWidget) GetX() int { + if c == nil || c.X == nil { + return 0 + } + return *c.X +} + +// GetOkX returns a tuple with the X field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *CheckStatusWidget) GetXOk() (int, bool) { + if c == nil || c.X == nil { + return 0, false + } + return *c.X, true +} + +// HasX returns a boolean if a field has been set. +func (c *CheckStatusWidget) HasX() bool { + if c != nil && c.X != nil { + return true + } + + return false +} + +// SetX allocates a new c.X and returns the pointer to it. +func (c *CheckStatusWidget) SetX(v int) { + c.X = &v +} + +// GetY returns the Y field if non-nil, zero value otherwise. +func (c *CheckStatusWidget) GetY() int { + if c == nil || c.Y == nil { + return 0 + } + return *c.Y +} + +// GetOkY returns a tuple with the Y field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *CheckStatusWidget) GetYOk() (int, bool) { + if c == nil || c.Y == nil { + return 0, false + } + return *c.Y, true +} + +// HasY returns a boolean if a field has been set. +func (c *CheckStatusWidget) HasY() bool { + if c != nil && c.Y != nil { + return true + } + + return false +} + +// SetY allocates a new c.Y and returns the pointer to it. +func (c *CheckStatusWidget) SetY(v int) { + c.Y = &v +} + +// GetHandle returns the Handle field if non-nil, zero value otherwise. +func (c *Comment) GetHandle() string { + if c == nil || c.Handle == nil { + return "" + } + return *c.Handle +} + +// GetOkHandle returns a tuple with the Handle field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *Comment) GetHandleOk() (string, bool) { + if c == nil || c.Handle == nil { + return "", false + } + return *c.Handle, true +} + +// HasHandle returns a boolean if a field has been set. +func (c *Comment) HasHandle() bool { + if c != nil && c.Handle != nil { + return true + } + + return false +} + +// SetHandle allocates a new c.Handle and returns the pointer to it. +func (c *Comment) SetHandle(v string) { + c.Handle = &v +} + +// GetId returns the Id field if non-nil, zero value otherwise. +func (c *Comment) GetId() int { + if c == nil || c.Id == nil { + return 0 + } + return *c.Id +} + +// GetOkId returns a tuple with the Id field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *Comment) GetIdOk() (int, bool) { + if c == nil || c.Id == nil { + return 0, false + } + return *c.Id, true +} + +// HasId returns a boolean if a field has been set. +func (c *Comment) HasId() bool { + if c != nil && c.Id != nil { + return true + } + + return false +} + +// SetId allocates a new c.Id and returns the pointer to it. +func (c *Comment) SetId(v int) { + c.Id = &v +} + +// GetMessage returns the Message field if non-nil, zero value otherwise. +func (c *Comment) GetMessage() string { + if c == nil || c.Message == nil { + return "" + } + return *c.Message +} + +// GetOkMessage returns a tuple with the Message field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *Comment) GetMessageOk() (string, bool) { + if c == nil || c.Message == nil { + return "", false + } + return *c.Message, true +} + +// HasMessage returns a boolean if a field has been set. +func (c *Comment) HasMessage() bool { + if c != nil && c.Message != nil { + return true + } + + return false +} + +// SetMessage allocates a new c.Message and returns the pointer to it. +func (c *Comment) SetMessage(v string) { + c.Message = &v +} + +// GetRelatedId returns the RelatedId field if non-nil, zero value otherwise. +func (c *Comment) GetRelatedId() int { + if c == nil || c.RelatedId == nil { + return 0 + } + return *c.RelatedId +} + +// GetOkRelatedId returns a tuple with the RelatedId field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *Comment) GetRelatedIdOk() (int, bool) { + if c == nil || c.RelatedId == nil { + return 0, false + } + return *c.RelatedId, true +} + +// HasRelatedId returns a boolean if a field has been set. +func (c *Comment) HasRelatedId() bool { + if c != nil && c.RelatedId != nil { + return true + } + + return false +} + +// SetRelatedId allocates a new c.RelatedId and returns the pointer to it. +func (c *Comment) SetRelatedId(v int) { + c.RelatedId = &v +} + +// GetResource returns the Resource field if non-nil, zero value otherwise. +func (c *Comment) GetResource() string { + if c == nil || c.Resource == nil { + return "" + } + return *c.Resource +} + +// GetOkResource returns a tuple with the Resource field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *Comment) GetResourceOk() (string, bool) { + if c == nil || c.Resource == nil { + return "", false + } + return *c.Resource, true +} + +// HasResource returns a boolean if a field has been set. +func (c *Comment) HasResource() bool { + if c != nil && c.Resource != nil { + return true + } + + return false +} + +// SetResource allocates a new c.Resource and returns the pointer to it. +func (c *Comment) SetResource(v string) { + c.Resource = &v +} + +// GetUrl returns the Url field if non-nil, zero value otherwise. +func (c *Comment) GetUrl() string { + if c == nil || c.Url == nil { + return "" + } + return *c.Url +} + +// GetOkUrl returns a tuple with the Url field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *Comment) GetUrlOk() (string, bool) { + if c == nil || c.Url == nil { + return "", false + } + return *c.Url, true +} + +// HasUrl returns a boolean if a field has been set. +func (c *Comment) HasUrl() bool { + if c != nil && c.Url != nil { + return true + } + + return false +} + +// SetUrl allocates a new c.Url and returns the pointer to it. +func (c *Comment) SetUrl(v string) { + c.Url = &v +} + +// GetColor returns the Color field if non-nil, zero value otherwise. +func (c *ConditionalFormat) GetColor() string { + if c == nil || c.Color == nil { + return "" + } + return *c.Color +} + +// GetOkColor returns a tuple with the Color field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *ConditionalFormat) GetColorOk() (string, bool) { + if c == nil || c.Color == nil { + return "", false + } + return *c.Color, true +} + +// HasColor returns a boolean if a field has been set. +func (c *ConditionalFormat) HasColor() bool { + if c != nil && c.Color != nil { + return true + } + + return false +} + +// SetColor allocates a new c.Color and returns the pointer to it. +func (c *ConditionalFormat) SetColor(v string) { + c.Color = &v +} + +// GetComparator returns the Comparator field if non-nil, zero value otherwise. +func (c *ConditionalFormat) GetComparator() string { + if c == nil || c.Comparator == nil { + return "" + } + return *c.Comparator +} + +// GetOkComparator returns a tuple with the Comparator field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *ConditionalFormat) GetComparatorOk() (string, bool) { + if c == nil || c.Comparator == nil { + return "", false + } + return *c.Comparator, true +} + +// HasComparator returns a boolean if a field has been set. +func (c *ConditionalFormat) HasComparator() bool { + if c != nil && c.Comparator != nil { + return true + } + + return false +} + +// SetComparator allocates a new c.Comparator and returns the pointer to it. +func (c *ConditionalFormat) SetComparator(v string) { + c.Comparator = &v +} + +// GetInverted returns the Inverted field if non-nil, zero value otherwise. +func (c *ConditionalFormat) GetInverted() bool { + if c == nil || c.Inverted == nil { + return false + } + return *c.Inverted +} + +// GetOkInverted returns a tuple with the Inverted field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *ConditionalFormat) GetInvertedOk() (bool, bool) { + if c == nil || c.Inverted == nil { + return false, false + } + return *c.Inverted, true +} + +// HasInverted returns a boolean if a field has been set. +func (c *ConditionalFormat) HasInverted() bool { + if c != nil && c.Inverted != nil { + return true + } + + return false +} + +// SetInverted allocates a new c.Inverted and returns the pointer to it. +func (c *ConditionalFormat) SetInverted(v bool) { + c.Inverted = &v +} + +// GetValue returns the Value field if non-nil, zero value otherwise. +func (c *ConditionalFormat) GetValue() int { + if c == nil || c.Value == nil { + return 0 + } + return *c.Value +} + +// GetOkValue returns a tuple with the Value field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *ConditionalFormat) GetValueOk() (int, bool) { + if c == nil || c.Value == nil { + return 0, false + } + return *c.Value, true +} + +// HasValue returns a boolean if a field has been set. +func (c *ConditionalFormat) HasValue() bool { + if c != nil && c.Value != nil { + return true + } + + return false +} + +// SetValue allocates a new c.Value and returns the pointer to it. +func (c *ConditionalFormat) SetValue(v int) { + c.Value = &v +} + +// GetEmail returns the Email field if non-nil, zero value otherwise. +func (c *Creator) GetEmail() string { + if c == nil || c.Email == nil { + return "" + } + return *c.Email +} + +// GetOkEmail returns a tuple with the Email field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *Creator) GetEmailOk() (string, bool) { + if c == nil || c.Email == nil { + return "", false + } + return *c.Email, true +} + +// HasEmail returns a boolean if a field has been set. +func (c *Creator) HasEmail() bool { + if c != nil && c.Email != nil { + return true + } + + return false +} + +// SetEmail allocates a new c.Email and returns the pointer to it. +func (c *Creator) SetEmail(v string) { + c.Email = &v +} + +// GetHandle returns the Handle field if non-nil, zero value otherwise. +func (c *Creator) GetHandle() string { + if c == nil || c.Handle == nil { + return "" + } + return *c.Handle +} + +// GetOkHandle returns a tuple with the Handle field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *Creator) GetHandleOk() (string, bool) { + if c == nil || c.Handle == nil { + return "", false + } + return *c.Handle, true +} + +// HasHandle returns a boolean if a field has been set. +func (c *Creator) HasHandle() bool { + if c != nil && c.Handle != nil { + return true + } + + return false +} + +// SetHandle allocates a new c.Handle and returns the pointer to it. +func (c *Creator) SetHandle(v string) { + c.Handle = &v +} + +// GetId returns the Id field if non-nil, zero value otherwise. +func (c *Creator) GetId() int { + if c == nil || c.Id == nil { + return 0 + } + return *c.Id +} + +// GetOkId returns a tuple with the Id field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *Creator) GetIdOk() (int, bool) { + if c == nil || c.Id == nil { + return 0, false + } + return *c.Id, true +} + +// HasId returns a boolean if a field has been set. +func (c *Creator) HasId() bool { + if c != nil && c.Id != nil { + return true + } + + return false +} + +// SetId allocates a new c.Id and returns the pointer to it. +func (c *Creator) SetId(v int) { + c.Id = &v +} + +// GetName returns the Name field if non-nil, zero value otherwise. +func (c *Creator) GetName() string { + if c == nil || c.Name == nil { + return "" + } + return *c.Name +} + +// GetOkName returns a tuple with the Name field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (c *Creator) GetNameOk() (string, bool) { + if c == nil || c.Name == nil { + return "", false + } + return *c.Name, true +} + +// HasName returns a boolean if a field has been set. +func (c *Creator) HasName() bool { + if c != nil && c.Name != nil { + return true + } + + return false +} + +// SetName allocates a new c.Name and returns the pointer to it. +func (c *Creator) SetName(v string) { + c.Name = &v +} + +// GetDescription returns the Description field if non-nil, zero value otherwise. +func (d *Dashboard) GetDescription() string { + if d == nil || d.Description == nil { + return "" + } + return *d.Description +} + +// GetOkDescription returns a tuple with the Description field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *Dashboard) GetDescriptionOk() (string, bool) { + if d == nil || d.Description == nil { + return "", false + } + return *d.Description, true +} + +// HasDescription returns a boolean if a field has been set. +func (d *Dashboard) HasDescription() bool { + if d != nil && d.Description != nil { + return true + } + + return false +} + +// SetDescription allocates a new d.Description and returns the pointer to it. +func (d *Dashboard) SetDescription(v string) { + d.Description = &v +} + +// GetId returns the Id field if non-nil, zero value otherwise. +func (d *Dashboard) GetId() int { + if d == nil || d.Id == nil { + return 0 + } + return *d.Id +} + +// GetOkId returns a tuple with the Id field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *Dashboard) GetIdOk() (int, bool) { + if d == nil || d.Id == nil { + return 0, false + } + return *d.Id, true +} + +// HasId returns a boolean if a field has been set. +func (d *Dashboard) HasId() bool { + if d != nil && d.Id != nil { + return true + } + + return false +} + +// SetId allocates a new d.Id and returns the pointer to it. +func (d *Dashboard) SetId(v int) { + d.Id = &v +} + +// GetReadOnly returns the ReadOnly field if non-nil, zero value otherwise. +func (d *Dashboard) GetReadOnly() bool { + if d == nil || d.ReadOnly == nil { + return false + } + return *d.ReadOnly +} + +// GetOkReadOnly returns a tuple with the ReadOnly field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *Dashboard) GetReadOnlyOk() (bool, bool) { + if d == nil || d.ReadOnly == nil { + return false, false + } + return *d.ReadOnly, true +} + +// HasReadOnly returns a boolean if a field has been set. +func (d *Dashboard) HasReadOnly() bool { + if d != nil && d.ReadOnly != nil { + return true + } + + return false +} + +// SetReadOnly allocates a new d.ReadOnly and returns the pointer to it. +func (d *Dashboard) SetReadOnly(v bool) { + d.ReadOnly = &v +} + +// GetTitle returns the Title field if non-nil, zero value otherwise. +func (d *Dashboard) GetTitle() string { + if d == nil || d.Title == nil { + return "" + } + return *d.Title +} + +// GetOkTitle returns a tuple with the Title field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *Dashboard) GetTitleOk() (string, bool) { + if d == nil || d.Title == nil { + return "", false + } + return *d.Title, true +} + +// HasTitle returns a boolean if a field has been set. +func (d *Dashboard) HasTitle() bool { + if d != nil && d.Title != nil { + return true + } + + return false +} + +// SetTitle allocates a new d.Title and returns the pointer to it. +func (d *Dashboard) SetTitle(v string) { + d.Title = &v +} + +// GetComparator returns the Comparator field if non-nil, zero value otherwise. +func (d *DashboardConditionalFormat) GetComparator() string { + if d == nil || d.Comparator == nil { + return "" + } + return *d.Comparator +} + +// GetOkComparator returns a tuple with the Comparator field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *DashboardConditionalFormat) GetComparatorOk() (string, bool) { + if d == nil || d.Comparator == nil { + return "", false + } + return *d.Comparator, true +} + +// HasComparator returns a boolean if a field has been set. +func (d *DashboardConditionalFormat) HasComparator() bool { + if d != nil && d.Comparator != nil { + return true + } + + return false +} + +// SetComparator allocates a new d.Comparator and returns the pointer to it. +func (d *DashboardConditionalFormat) SetComparator(v string) { + d.Comparator = &v +} + +// GetCustomBgColor returns the CustomBgColor field if non-nil, zero value otherwise. +func (d *DashboardConditionalFormat) GetCustomBgColor() string { + if d == nil || d.CustomBgColor == nil { + return "" + } + return *d.CustomBgColor +} + +// GetOkCustomBgColor returns a tuple with the CustomBgColor field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *DashboardConditionalFormat) GetCustomBgColorOk() (string, bool) { + if d == nil || d.CustomBgColor == nil { + return "", false + } + return *d.CustomBgColor, true +} + +// HasCustomBgColor returns a boolean if a field has been set. +func (d *DashboardConditionalFormat) HasCustomBgColor() bool { + if d != nil && d.CustomBgColor != nil { + return true + } + + return false +} + +// SetCustomBgColor allocates a new d.CustomBgColor and returns the pointer to it. +func (d *DashboardConditionalFormat) SetCustomBgColor(v string) { + d.CustomBgColor = &v +} + +// GetCustomFgColor returns the CustomFgColor field if non-nil, zero value otherwise. +func (d *DashboardConditionalFormat) GetCustomFgColor() string { + if d == nil || d.CustomFgColor == nil { + return "" + } + return *d.CustomFgColor +} + +// GetOkCustomFgColor returns a tuple with the CustomFgColor field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *DashboardConditionalFormat) GetCustomFgColorOk() (string, bool) { + if d == nil || d.CustomFgColor == nil { + return "", false + } + return *d.CustomFgColor, true +} + +// HasCustomFgColor returns a boolean if a field has been set. +func (d *DashboardConditionalFormat) HasCustomFgColor() bool { + if d != nil && d.CustomFgColor != nil { + return true + } + + return false +} + +// SetCustomFgColor allocates a new d.CustomFgColor and returns the pointer to it. +func (d *DashboardConditionalFormat) SetCustomFgColor(v string) { + d.CustomFgColor = &v +} + +// GetCustomImageUrl returns the CustomImageUrl field if non-nil, zero value otherwise. +func (d *DashboardConditionalFormat) GetCustomImageUrl() string { + if d == nil || d.CustomImageUrl == nil { + return "" + } + return *d.CustomImageUrl +} + +// GetOkCustomImageUrl returns a tuple with the CustomImageUrl field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *DashboardConditionalFormat) GetCustomImageUrlOk() (string, bool) { + if d == nil || d.CustomImageUrl == nil { + return "", false + } + return *d.CustomImageUrl, true +} + +// HasCustomImageUrl returns a boolean if a field has been set. +func (d *DashboardConditionalFormat) HasCustomImageUrl() bool { + if d != nil && d.CustomImageUrl != nil { + return true + } + + return false +} + +// SetCustomImageUrl allocates a new d.CustomImageUrl and returns the pointer to it. +func (d *DashboardConditionalFormat) SetCustomImageUrl(v string) { + d.CustomImageUrl = &v +} + +// GetInverted returns the Inverted field if non-nil, zero value otherwise. +func (d *DashboardConditionalFormat) GetInverted() bool { + if d == nil || d.Inverted == nil { + return false + } + return *d.Inverted +} + +// GetOkInverted returns a tuple with the Inverted field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *DashboardConditionalFormat) GetInvertedOk() (bool, bool) { + if d == nil || d.Inverted == nil { + return false, false + } + return *d.Inverted, true +} + +// HasInverted returns a boolean if a field has been set. +func (d *DashboardConditionalFormat) HasInverted() bool { + if d != nil && d.Inverted != nil { + return true + } + + return false +} + +// SetInverted allocates a new d.Inverted and returns the pointer to it. +func (d *DashboardConditionalFormat) SetInverted(v bool) { + d.Inverted = &v +} + +// GetPalette returns the Palette field if non-nil, zero value otherwise. +func (d *DashboardConditionalFormat) GetPalette() string { + if d == nil || d.Palette == nil { + return "" + } + return *d.Palette +} + +// GetOkPalette returns a tuple with the Palette field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *DashboardConditionalFormat) GetPaletteOk() (string, bool) { + if d == nil || d.Palette == nil { + return "", false + } + return *d.Palette, true +} + +// HasPalette returns a boolean if a field has been set. +func (d *DashboardConditionalFormat) HasPalette() bool { + if d != nil && d.Palette != nil { + return true + } + + return false +} + +// SetPalette allocates a new d.Palette and returns the pointer to it. +func (d *DashboardConditionalFormat) SetPalette(v string) { + d.Palette = &v +} + +// GetValue returns the Value field if non-nil, zero value otherwise. +func (d *DashboardConditionalFormat) GetValue() json.Number { + if d == nil || d.Value == nil { + return "" + } + return *d.Value +} + +// GetOkValue returns a tuple with the Value field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *DashboardConditionalFormat) GetValueOk() (json.Number, bool) { + if d == nil || d.Value == nil { + return "", false + } + return *d.Value, true +} + +// HasValue returns a boolean if a field has been set. +func (d *DashboardConditionalFormat) HasValue() bool { + if d != nil && d.Value != nil { + return true + } + + return false +} + +// SetValue allocates a new d.Value and returns the pointer to it. +func (d *DashboardConditionalFormat) SetValue(v json.Number) { + d.Value = &v +} + +// GetDashboardCount returns the DashboardCount field if non-nil, zero value otherwise. +func (d *DashboardList) GetDashboardCount() int { + if d == nil || d.DashboardCount == nil { + return 0 + } + return *d.DashboardCount +} + +// GetOkDashboardCount returns a tuple with the DashboardCount field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *DashboardList) GetDashboardCountOk() (int, bool) { + if d == nil || d.DashboardCount == nil { + return 0, false + } + return *d.DashboardCount, true +} + +// HasDashboardCount returns a boolean if a field has been set. +func (d *DashboardList) HasDashboardCount() bool { + if d != nil && d.DashboardCount != nil { + return true + } + + return false +} + +// SetDashboardCount allocates a new d.DashboardCount and returns the pointer to it. +func (d *DashboardList) SetDashboardCount(v int) { + d.DashboardCount = &v +} + +// GetId returns the Id field if non-nil, zero value otherwise. +func (d *DashboardList) GetId() int { + if d == nil || d.Id == nil { + return 0 + } + return *d.Id +} + +// GetOkId returns a tuple with the Id field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *DashboardList) GetIdOk() (int, bool) { + if d == nil || d.Id == nil { + return 0, false + } + return *d.Id, true +} + +// HasId returns a boolean if a field has been set. +func (d *DashboardList) HasId() bool { + if d != nil && d.Id != nil { + return true + } + + return false +} + +// SetId allocates a new d.Id and returns the pointer to it. +func (d *DashboardList) SetId(v int) { + d.Id = &v +} + +// GetName returns the Name field if non-nil, zero value otherwise. +func (d *DashboardList) GetName() string { + if d == nil || d.Name == nil { + return "" + } + return *d.Name +} + +// GetOkName returns a tuple with the Name field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *DashboardList) GetNameOk() (string, bool) { + if d == nil || d.Name == nil { + return "", false + } + return *d.Name, true +} + +// HasName returns a boolean if a field has been set. +func (d *DashboardList) HasName() bool { + if d != nil && d.Name != nil { + return true + } + + return false +} + +// SetName allocates a new d.Name and returns the pointer to it. +func (d *DashboardList) SetName(v string) { + d.Name = &v +} + +// GetId returns the Id field if non-nil, zero value otherwise. +func (d *DashboardListItem) GetId() int { + if d == nil || d.Id == nil { + return 0 + } + return *d.Id +} + +// GetOkId returns a tuple with the Id field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *DashboardListItem) GetIdOk() (int, bool) { + if d == nil || d.Id == nil { + return 0, false + } + return *d.Id, true +} + +// HasId returns a boolean if a field has been set. +func (d *DashboardListItem) HasId() bool { + if d != nil && d.Id != nil { + return true + } + + return false +} + +// SetId allocates a new d.Id and returns the pointer to it. +func (d *DashboardListItem) SetId(v int) { + d.Id = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (d *DashboardListItem) GetType() string { + if d == nil || d.Type == nil { + return "" + } + return *d.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *DashboardListItem) GetTypeOk() (string, bool) { + if d == nil || d.Type == nil { + return "", false + } + return *d.Type, true +} + +// HasType returns a boolean if a field has been set. +func (d *DashboardListItem) HasType() bool { + if d != nil && d.Type != nil { + return true + } + + return false +} + +// SetType allocates a new d.Type and returns the pointer to it. +func (d *DashboardListItem) SetType(v string) { + d.Type = &v +} + +// GetDescription returns the Description field if non-nil, zero value otherwise. +func (d *DashboardLite) GetDescription() string { + if d == nil || d.Description == nil { + return "" + } + return *d.Description +} + +// GetOkDescription returns a tuple with the Description field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *DashboardLite) GetDescriptionOk() (string, bool) { + if d == nil || d.Description == nil { + return "", false + } + return *d.Description, true +} + +// HasDescription returns a boolean if a field has been set. +func (d *DashboardLite) HasDescription() bool { + if d != nil && d.Description != nil { + return true + } + + return false +} + +// SetDescription allocates a new d.Description and returns the pointer to it. +func (d *DashboardLite) SetDescription(v string) { + d.Description = &v +} + +// GetId returns the Id field if non-nil, zero value otherwise. +func (d *DashboardLite) GetId() int { + if d == nil || d.Id == nil { + return 0 + } + return *d.Id +} + +// GetOkId returns a tuple with the Id field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *DashboardLite) GetIdOk() (int, bool) { + if d == nil || d.Id == nil { + return 0, false + } + return *d.Id, true +} + +// HasId returns a boolean if a field has been set. +func (d *DashboardLite) HasId() bool { + if d != nil && d.Id != nil { + return true + } + + return false +} + +// SetId allocates a new d.Id and returns the pointer to it. +func (d *DashboardLite) SetId(v int) { + d.Id = &v +} + +// GetResource returns the Resource field if non-nil, zero value otherwise. +func (d *DashboardLite) GetResource() string { + if d == nil || d.Resource == nil { + return "" + } + return *d.Resource +} + +// GetOkResource returns a tuple with the Resource field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *DashboardLite) GetResourceOk() (string, bool) { + if d == nil || d.Resource == nil { + return "", false + } + return *d.Resource, true +} + +// HasResource returns a boolean if a field has been set. +func (d *DashboardLite) HasResource() bool { + if d != nil && d.Resource != nil { + return true + } + + return false +} + +// SetResource allocates a new d.Resource and returns the pointer to it. +func (d *DashboardLite) SetResource(v string) { + d.Resource = &v +} + +// GetTitle returns the Title field if non-nil, zero value otherwise. +func (d *DashboardLite) GetTitle() string { + if d == nil || d.Title == nil { + return "" + } + return *d.Title +} + +// GetOkTitle returns a tuple with the Title field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *DashboardLite) GetTitleOk() (string, bool) { + if d == nil || d.Title == nil { + return "", false + } + return *d.Title, true +} + +// HasTitle returns a boolean if a field has been set. +func (d *DashboardLite) HasTitle() bool { + if d != nil && d.Title != nil { + return true + } + + return false +} + +// SetTitle allocates a new d.Title and returns the pointer to it. +func (d *DashboardLite) SetTitle(v string) { + d.Title = &v +} + +// GetActive returns the Active field if non-nil, zero value otherwise. +func (d *Downtime) GetActive() bool { + if d == nil || d.Active == nil { + return false + } + return *d.Active +} + +// GetOkActive returns a tuple with the Active field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *Downtime) GetActiveOk() (bool, bool) { + if d == nil || d.Active == nil { + return false, false + } + return *d.Active, true +} + +// HasActive returns a boolean if a field has been set. +func (d *Downtime) HasActive() bool { + if d != nil && d.Active != nil { + return true + } + + return false +} + +// SetActive allocates a new d.Active and returns the pointer to it. +func (d *Downtime) SetActive(v bool) { + d.Active = &v +} + +// GetCanceled returns the Canceled field if non-nil, zero value otherwise. +func (d *Downtime) GetCanceled() int { + if d == nil || d.Canceled == nil { + return 0 + } + return *d.Canceled +} + +// GetOkCanceled returns a tuple with the Canceled field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *Downtime) GetCanceledOk() (int, bool) { + if d == nil || d.Canceled == nil { + return 0, false + } + return *d.Canceled, true +} + +// HasCanceled returns a boolean if a field has been set. +func (d *Downtime) HasCanceled() bool { + if d != nil && d.Canceled != nil { + return true + } + + return false +} + +// SetCanceled allocates a new d.Canceled and returns the pointer to it. +func (d *Downtime) SetCanceled(v int) { + d.Canceled = &v +} + +// GetDisabled returns the Disabled field if non-nil, zero value otherwise. +func (d *Downtime) GetDisabled() bool { + if d == nil || d.Disabled == nil { + return false + } + return *d.Disabled +} + +// GetOkDisabled returns a tuple with the Disabled field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *Downtime) GetDisabledOk() (bool, bool) { + if d == nil || d.Disabled == nil { + return false, false + } + return *d.Disabled, true +} + +// HasDisabled returns a boolean if a field has been set. +func (d *Downtime) HasDisabled() bool { + if d != nil && d.Disabled != nil { + return true + } + + return false +} + +// SetDisabled allocates a new d.Disabled and returns the pointer to it. +func (d *Downtime) SetDisabled(v bool) { + d.Disabled = &v +} + +// GetEnd returns the End field if non-nil, zero value otherwise. +func (d *Downtime) GetEnd() int { + if d == nil || d.End == nil { + return 0 + } + return *d.End +} + +// GetOkEnd returns a tuple with the End field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *Downtime) GetEndOk() (int, bool) { + if d == nil || d.End == nil { + return 0, false + } + return *d.End, true +} + +// HasEnd returns a boolean if a field has been set. +func (d *Downtime) HasEnd() bool { + if d != nil && d.End != nil { + return true + } + + return false +} + +// SetEnd allocates a new d.End and returns the pointer to it. +func (d *Downtime) SetEnd(v int) { + d.End = &v +} + +// GetId returns the Id field if non-nil, zero value otherwise. +func (d *Downtime) GetId() int { + if d == nil || d.Id == nil { + return 0 + } + return *d.Id +} + +// GetOkId returns a tuple with the Id field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *Downtime) GetIdOk() (int, bool) { + if d == nil || d.Id == nil { + return 0, false + } + return *d.Id, true +} + +// HasId returns a boolean if a field has been set. +func (d *Downtime) HasId() bool { + if d != nil && d.Id != nil { + return true + } + + return false +} + +// SetId allocates a new d.Id and returns the pointer to it. +func (d *Downtime) SetId(v int) { + d.Id = &v +} + +// GetMessage returns the Message field if non-nil, zero value otherwise. +func (d *Downtime) GetMessage() string { + if d == nil || d.Message == nil { + return "" + } + return *d.Message +} + +// GetOkMessage returns a tuple with the Message field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *Downtime) GetMessageOk() (string, bool) { + if d == nil || d.Message == nil { + return "", false + } + return *d.Message, true +} + +// HasMessage returns a boolean if a field has been set. +func (d *Downtime) HasMessage() bool { + if d != nil && d.Message != nil { + return true + } + + return false +} + +// SetMessage allocates a new d.Message and returns the pointer to it. +func (d *Downtime) SetMessage(v string) { + d.Message = &v +} + +// GetMonitorId returns the MonitorId field if non-nil, zero value otherwise. +func (d *Downtime) GetMonitorId() int { + if d == nil || d.MonitorId == nil { + return 0 + } + return *d.MonitorId +} + +// GetOkMonitorId returns a tuple with the MonitorId field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *Downtime) GetMonitorIdOk() (int, bool) { + if d == nil || d.MonitorId == nil { + return 0, false + } + return *d.MonitorId, true +} + +// HasMonitorId returns a boolean if a field has been set. +func (d *Downtime) HasMonitorId() bool { + if d != nil && d.MonitorId != nil { + return true + } + + return false +} + +// SetMonitorId allocates a new d.MonitorId and returns the pointer to it. +func (d *Downtime) SetMonitorId(v int) { + d.MonitorId = &v +} + +// GetRecurrence returns the Recurrence field if non-nil, zero value otherwise. +func (d *Downtime) GetRecurrence() Recurrence { + if d == nil || d.Recurrence == nil { + return Recurrence{} + } + return *d.Recurrence +} + +// GetOkRecurrence returns a tuple with the Recurrence field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *Downtime) GetRecurrenceOk() (Recurrence, bool) { + if d == nil || d.Recurrence == nil { + return Recurrence{}, false + } + return *d.Recurrence, true +} + +// HasRecurrence returns a boolean if a field has been set. +func (d *Downtime) HasRecurrence() bool { + if d != nil && d.Recurrence != nil { + return true + } + + return false +} + +// SetRecurrence allocates a new d.Recurrence and returns the pointer to it. +func (d *Downtime) SetRecurrence(v Recurrence) { + d.Recurrence = &v +} + +// GetStart returns the Start field if non-nil, zero value otherwise. +func (d *Downtime) GetStart() int { + if d == nil || d.Start == nil { + return 0 + } + return *d.Start +} + +// GetOkStart returns a tuple with the Start field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (d *Downtime) GetStartOk() (int, bool) { + if d == nil || d.Start == nil { + return 0, false + } + return *d.Start, true +} + +// HasStart returns a boolean if a field has been set. +func (d *Downtime) HasStart() bool { + if d != nil && d.Start != nil { + return true + } + + return false +} + +// SetStart allocates a new d.Start and returns the pointer to it. +func (d *Downtime) SetStart(v int) { + d.Start = &v +} + +// GetAggregation returns the Aggregation field if non-nil, zero value otherwise. +func (e *Event) GetAggregation() string { + if e == nil || e.Aggregation == nil { + return "" + } + return *e.Aggregation +} + +// GetOkAggregation returns a tuple with the Aggregation field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *Event) GetAggregationOk() (string, bool) { + if e == nil || e.Aggregation == nil { + return "", false + } + return *e.Aggregation, true +} + +// HasAggregation returns a boolean if a field has been set. +func (e *Event) HasAggregation() bool { + if e != nil && e.Aggregation != nil { + return true + } + + return false +} + +// SetAggregation allocates a new e.Aggregation and returns the pointer to it. +func (e *Event) SetAggregation(v string) { + e.Aggregation = &v +} + +// GetAlertType returns the AlertType field if non-nil, zero value otherwise. +func (e *Event) GetAlertType() string { + if e == nil || e.AlertType == nil { + return "" + } + return *e.AlertType +} + +// GetOkAlertType returns a tuple with the AlertType field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *Event) GetAlertTypeOk() (string, bool) { + if e == nil || e.AlertType == nil { + return "", false + } + return *e.AlertType, true +} + +// HasAlertType returns a boolean if a field has been set. +func (e *Event) HasAlertType() bool { + if e != nil && e.AlertType != nil { + return true + } + + return false +} + +// SetAlertType allocates a new e.AlertType and returns the pointer to it. +func (e *Event) SetAlertType(v string) { + e.AlertType = &v +} + +// GetEventType returns the EventType field if non-nil, zero value otherwise. +func (e *Event) GetEventType() string { + if e == nil || e.EventType == nil { + return "" + } + return *e.EventType +} + +// GetOkEventType returns a tuple with the EventType field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *Event) GetEventTypeOk() (string, bool) { + if e == nil || e.EventType == nil { + return "", false + } + return *e.EventType, true +} + +// HasEventType returns a boolean if a field has been set. +func (e *Event) HasEventType() bool { + if e != nil && e.EventType != nil { + return true + } + + return false +} + +// SetEventType allocates a new e.EventType and returns the pointer to it. +func (e *Event) SetEventType(v string) { + e.EventType = &v +} + +// GetHost returns the Host field if non-nil, zero value otherwise. +func (e *Event) GetHost() string { + if e == nil || e.Host == nil { + return "" + } + return *e.Host +} + +// GetOkHost returns a tuple with the Host field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *Event) GetHostOk() (string, bool) { + if e == nil || e.Host == nil { + return "", false + } + return *e.Host, true +} + +// HasHost returns a boolean if a field has been set. +func (e *Event) HasHost() bool { + if e != nil && e.Host != nil { + return true + } + + return false +} + +// SetHost allocates a new e.Host and returns the pointer to it. +func (e *Event) SetHost(v string) { + e.Host = &v +} + +// GetId returns the Id field if non-nil, zero value otherwise. +func (e *Event) GetId() int { + if e == nil || e.Id == nil { + return 0 + } + return *e.Id +} + +// GetOkId returns a tuple with the Id field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *Event) GetIdOk() (int, bool) { + if e == nil || e.Id == nil { + return 0, false + } + return *e.Id, true +} + +// HasId returns a boolean if a field has been set. +func (e *Event) HasId() bool { + if e != nil && e.Id != nil { + return true + } + + return false +} + +// SetId allocates a new e.Id and returns the pointer to it. +func (e *Event) SetId(v int) { + e.Id = &v +} + +// GetPriority returns the Priority field if non-nil, zero value otherwise. +func (e *Event) GetPriority() string { + if e == nil || e.Priority == nil { + return "" + } + return *e.Priority +} + +// GetOkPriority returns a tuple with the Priority field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *Event) GetPriorityOk() (string, bool) { + if e == nil || e.Priority == nil { + return "", false + } + return *e.Priority, true +} + +// HasPriority returns a boolean if a field has been set. +func (e *Event) HasPriority() bool { + if e != nil && e.Priority != nil { + return true + } + + return false +} + +// SetPriority allocates a new e.Priority and returns the pointer to it. +func (e *Event) SetPriority(v string) { + e.Priority = &v +} + +// GetResource returns the Resource field if non-nil, zero value otherwise. +func (e *Event) GetResource() string { + if e == nil || e.Resource == nil { + return "" + } + return *e.Resource +} + +// GetOkResource returns a tuple with the Resource field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *Event) GetResourceOk() (string, bool) { + if e == nil || e.Resource == nil { + return "", false + } + return *e.Resource, true +} + +// HasResource returns a boolean if a field has been set. +func (e *Event) HasResource() bool { + if e != nil && e.Resource != nil { + return true + } + + return false +} + +// SetResource allocates a new e.Resource and returns the pointer to it. +func (e *Event) SetResource(v string) { + e.Resource = &v +} + +// GetSourceType returns the SourceType field if non-nil, zero value otherwise. +func (e *Event) GetSourceType() string { + if e == nil || e.SourceType == nil { + return "" + } + return *e.SourceType +} + +// GetOkSourceType returns a tuple with the SourceType field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *Event) GetSourceTypeOk() (string, bool) { + if e == nil || e.SourceType == nil { + return "", false + } + return *e.SourceType, true +} + +// HasSourceType returns a boolean if a field has been set. +func (e *Event) HasSourceType() bool { + if e != nil && e.SourceType != nil { + return true + } + + return false +} + +// SetSourceType allocates a new e.SourceType and returns the pointer to it. +func (e *Event) SetSourceType(v string) { + e.SourceType = &v +} + +// GetText returns the Text field if non-nil, zero value otherwise. +func (e *Event) GetText() string { + if e == nil || e.Text == nil { + return "" + } + return *e.Text +} + +// GetOkText returns a tuple with the Text field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *Event) GetTextOk() (string, bool) { + if e == nil || e.Text == nil { + return "", false + } + return *e.Text, true +} + +// HasText returns a boolean if a field has been set. +func (e *Event) HasText() bool { + if e != nil && e.Text != nil { + return true + } + + return false +} + +// SetText allocates a new e.Text and returns the pointer to it. +func (e *Event) SetText(v string) { + e.Text = &v +} + +// GetTime returns the Time field if non-nil, zero value otherwise. +func (e *Event) GetTime() int { + if e == nil || e.Time == nil { + return 0 + } + return *e.Time +} + +// GetOkTime returns a tuple with the Time field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *Event) GetTimeOk() (int, bool) { + if e == nil || e.Time == nil { + return 0, false + } + return *e.Time, true +} + +// HasTime returns a boolean if a field has been set. +func (e *Event) HasTime() bool { + if e != nil && e.Time != nil { + return true + } + + return false +} + +// SetTime allocates a new e.Time and returns the pointer to it. +func (e *Event) SetTime(v int) { + e.Time = &v +} + +// GetTitle returns the Title field if non-nil, zero value otherwise. +func (e *Event) GetTitle() string { + if e == nil || e.Title == nil { + return "" + } + return *e.Title +} + +// GetOkTitle returns a tuple with the Title field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *Event) GetTitleOk() (string, bool) { + if e == nil || e.Title == nil { + return "", false + } + return *e.Title, true +} + +// HasTitle returns a boolean if a field has been set. +func (e *Event) HasTitle() bool { + if e != nil && e.Title != nil { + return true + } + + return false +} + +// SetTitle allocates a new e.Title and returns the pointer to it. +func (e *Event) SetTitle(v string) { + e.Title = &v +} + +// GetUrl returns the Url field if non-nil, zero value otherwise. +func (e *Event) GetUrl() string { + if e == nil || e.Url == nil { + return "" + } + return *e.Url +} + +// GetOkUrl returns a tuple with the Url field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *Event) GetUrlOk() (string, bool) { + if e == nil || e.Url == nil { + return "", false + } + return *e.Url, true +} + +// HasUrl returns a boolean if a field has been set. +func (e *Event) HasUrl() bool { + if e != nil && e.Url != nil { + return true + } + + return false +} + +// SetUrl allocates a new e.Url and returns the pointer to it. +func (e *Event) SetUrl(v string) { + e.Url = &v +} + +// GetEventSize returns the EventSize field if non-nil, zero value otherwise. +func (e *EventStreamWidget) GetEventSize() string { + if e == nil || e.EventSize == nil { + return "" + } + return *e.EventSize +} + +// GetOkEventSize returns a tuple with the EventSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventStreamWidget) GetEventSizeOk() (string, bool) { + if e == nil || e.EventSize == nil { + return "", false + } + return *e.EventSize, true +} + +// HasEventSize returns a boolean if a field has been set. +func (e *EventStreamWidget) HasEventSize() bool { + if e != nil && e.EventSize != nil { + return true + } + + return false +} + +// SetEventSize allocates a new e.EventSize and returns the pointer to it. +func (e *EventStreamWidget) SetEventSize(v string) { + e.EventSize = &v +} + +// GetHeight returns the Height field if non-nil, zero value otherwise. +func (e *EventStreamWidget) GetHeight() int { + if e == nil || e.Height == nil { + return 0 + } + return *e.Height +} + +// GetOkHeight returns a tuple with the Height field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventStreamWidget) GetHeightOk() (int, bool) { + if e == nil || e.Height == nil { + return 0, false + } + return *e.Height, true +} + +// HasHeight returns a boolean if a field has been set. +func (e *EventStreamWidget) HasHeight() bool { + if e != nil && e.Height != nil { + return true + } + + return false +} + +// SetHeight allocates a new e.Height and returns the pointer to it. +func (e *EventStreamWidget) SetHeight(v int) { + e.Height = &v +} + +// GetQuery returns the Query field if non-nil, zero value otherwise. +func (e *EventStreamWidget) GetQuery() string { + if e == nil || e.Query == nil { + return "" + } + return *e.Query +} + +// GetOkQuery returns a tuple with the Query field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventStreamWidget) GetQueryOk() (string, bool) { + if e == nil || e.Query == nil { + return "", false + } + return *e.Query, true +} + +// HasQuery returns a boolean if a field has been set. +func (e *EventStreamWidget) HasQuery() bool { + if e != nil && e.Query != nil { + return true + } + + return false +} + +// SetQuery allocates a new e.Query and returns the pointer to it. +func (e *EventStreamWidget) SetQuery(v string) { + e.Query = &v +} + +// GetTimeframe returns the Timeframe field if non-nil, zero value otherwise. +func (e *EventStreamWidget) GetTimeframe() string { + if e == nil || e.Timeframe == nil { + return "" + } + return *e.Timeframe +} + +// GetOkTimeframe returns a tuple with the Timeframe field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventStreamWidget) GetTimeframeOk() (string, bool) { + if e == nil || e.Timeframe == nil { + return "", false + } + return *e.Timeframe, true +} + +// HasTimeframe returns a boolean if a field has been set. +func (e *EventStreamWidget) HasTimeframe() bool { + if e != nil && e.Timeframe != nil { + return true + } + + return false +} + +// SetTimeframe allocates a new e.Timeframe and returns the pointer to it. +func (e *EventStreamWidget) SetTimeframe(v string) { + e.Timeframe = &v +} + +// GetTitle returns the Title field if non-nil, zero value otherwise. +func (e *EventStreamWidget) GetTitle() bool { + if e == nil || e.Title == nil { + return false + } + return *e.Title +} + +// GetOkTitle returns a tuple with the Title field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventStreamWidget) GetTitleOk() (bool, bool) { + if e == nil || e.Title == nil { + return false, false + } + return *e.Title, true +} + +// HasTitle returns a boolean if a field has been set. +func (e *EventStreamWidget) HasTitle() bool { + if e != nil && e.Title != nil { + return true + } + + return false +} + +// SetTitle allocates a new e.Title and returns the pointer to it. +func (e *EventStreamWidget) SetTitle(v bool) { + e.Title = &v +} + +// GetTitleAlign returns the TitleAlign field if non-nil, zero value otherwise. +func (e *EventStreamWidget) GetTitleAlign() string { + if e == nil || e.TitleAlign == nil { + return "" + } + return *e.TitleAlign +} + +// GetOkTitleAlign returns a tuple with the TitleAlign field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventStreamWidget) GetTitleAlignOk() (string, bool) { + if e == nil || e.TitleAlign == nil { + return "", false + } + return *e.TitleAlign, true +} + +// HasTitleAlign returns a boolean if a field has been set. +func (e *EventStreamWidget) HasTitleAlign() bool { + if e != nil && e.TitleAlign != nil { + return true + } + + return false +} + +// SetTitleAlign allocates a new e.TitleAlign and returns the pointer to it. +func (e *EventStreamWidget) SetTitleAlign(v string) { + e.TitleAlign = &v +} + +// GetTitleSize returns the TitleSize field if non-nil, zero value otherwise. +func (e *EventStreamWidget) GetTitleSize() TextSize { + if e == nil || e.TitleSize == nil { + return TextSize{} + } + return *e.TitleSize +} + +// GetOkTitleSize returns a tuple with the TitleSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventStreamWidget) GetTitleSizeOk() (TextSize, bool) { + if e == nil || e.TitleSize == nil { + return TextSize{}, false + } + return *e.TitleSize, true +} + +// HasTitleSize returns a boolean if a field has been set. +func (e *EventStreamWidget) HasTitleSize() bool { + if e != nil && e.TitleSize != nil { + return true + } + + return false +} + +// SetTitleSize allocates a new e.TitleSize and returns the pointer to it. +func (e *EventStreamWidget) SetTitleSize(v TextSize) { + e.TitleSize = &v +} + +// GetTitleText returns the TitleText field if non-nil, zero value otherwise. +func (e *EventStreamWidget) GetTitleText() string { + if e == nil || e.TitleText == nil { + return "" + } + return *e.TitleText +} + +// GetOkTitleText returns a tuple with the TitleText field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventStreamWidget) GetTitleTextOk() (string, bool) { + if e == nil || e.TitleText == nil { + return "", false + } + return *e.TitleText, true +} + +// HasTitleText returns a boolean if a field has been set. +func (e *EventStreamWidget) HasTitleText() bool { + if e != nil && e.TitleText != nil { + return true + } + + return false +} + +// SetTitleText allocates a new e.TitleText and returns the pointer to it. +func (e *EventStreamWidget) SetTitleText(v string) { + e.TitleText = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (e *EventStreamWidget) GetType() string { + if e == nil || e.Type == nil { + return "" + } + return *e.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventStreamWidget) GetTypeOk() (string, bool) { + if e == nil || e.Type == nil { + return "", false + } + return *e.Type, true +} + +// HasType returns a boolean if a field has been set. +func (e *EventStreamWidget) HasType() bool { + if e != nil && e.Type != nil { + return true + } + + return false +} + +// SetType allocates a new e.Type and returns the pointer to it. +func (e *EventStreamWidget) SetType(v string) { + e.Type = &v +} + +// GetWidth returns the Width field if non-nil, zero value otherwise. +func (e *EventStreamWidget) GetWidth() int { + if e == nil || e.Width == nil { + return 0 + } + return *e.Width +} + +// GetOkWidth returns a tuple with the Width field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventStreamWidget) GetWidthOk() (int, bool) { + if e == nil || e.Width == nil { + return 0, false + } + return *e.Width, true +} + +// HasWidth returns a boolean if a field has been set. +func (e *EventStreamWidget) HasWidth() bool { + if e != nil && e.Width != nil { + return true + } + + return false +} + +// SetWidth allocates a new e.Width and returns the pointer to it. +func (e *EventStreamWidget) SetWidth(v int) { + e.Width = &v +} + +// GetX returns the X field if non-nil, zero value otherwise. +func (e *EventStreamWidget) GetX() int { + if e == nil || e.X == nil { + return 0 + } + return *e.X +} + +// GetOkX returns a tuple with the X field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventStreamWidget) GetXOk() (int, bool) { + if e == nil || e.X == nil { + return 0, false + } + return *e.X, true +} + +// HasX returns a boolean if a field has been set. +func (e *EventStreamWidget) HasX() bool { + if e != nil && e.X != nil { + return true + } + + return false +} + +// SetX allocates a new e.X and returns the pointer to it. +func (e *EventStreamWidget) SetX(v int) { + e.X = &v +} + +// GetY returns the Y field if non-nil, zero value otherwise. +func (e *EventStreamWidget) GetY() int { + if e == nil || e.Y == nil { + return 0 + } + return *e.Y +} + +// GetOkY returns a tuple with the Y field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventStreamWidget) GetYOk() (int, bool) { + if e == nil || e.Y == nil { + return 0, false + } + return *e.Y, true +} + +// HasY returns a boolean if a field has been set. +func (e *EventStreamWidget) HasY() bool { + if e != nil && e.Y != nil { + return true + } + + return false +} + +// SetY allocates a new e.Y and returns the pointer to it. +func (e *EventStreamWidget) SetY(v int) { + e.Y = &v +} + +// GetHeight returns the Height field if non-nil, zero value otherwise. +func (e *EventTimelineWidget) GetHeight() int { + if e == nil || e.Height == nil { + return 0 + } + return *e.Height +} + +// GetOkHeight returns a tuple with the Height field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventTimelineWidget) GetHeightOk() (int, bool) { + if e == nil || e.Height == nil { + return 0, false + } + return *e.Height, true +} + +// HasHeight returns a boolean if a field has been set. +func (e *EventTimelineWidget) HasHeight() bool { + if e != nil && e.Height != nil { + return true + } + + return false +} + +// SetHeight allocates a new e.Height and returns the pointer to it. +func (e *EventTimelineWidget) SetHeight(v int) { + e.Height = &v +} + +// GetQuery returns the Query field if non-nil, zero value otherwise. +func (e *EventTimelineWidget) GetQuery() string { + if e == nil || e.Query == nil { + return "" + } + return *e.Query +} + +// GetOkQuery returns a tuple with the Query field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventTimelineWidget) GetQueryOk() (string, bool) { + if e == nil || e.Query == nil { + return "", false + } + return *e.Query, true +} + +// HasQuery returns a boolean if a field has been set. +func (e *EventTimelineWidget) HasQuery() bool { + if e != nil && e.Query != nil { + return true + } + + return false +} + +// SetQuery allocates a new e.Query and returns the pointer to it. +func (e *EventTimelineWidget) SetQuery(v string) { + e.Query = &v +} + +// GetTimeframe returns the Timeframe field if non-nil, zero value otherwise. +func (e *EventTimelineWidget) GetTimeframe() string { + if e == nil || e.Timeframe == nil { + return "" + } + return *e.Timeframe +} + +// GetOkTimeframe returns a tuple with the Timeframe field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventTimelineWidget) GetTimeframeOk() (string, bool) { + if e == nil || e.Timeframe == nil { + return "", false + } + return *e.Timeframe, true +} + +// HasTimeframe returns a boolean if a field has been set. +func (e *EventTimelineWidget) HasTimeframe() bool { + if e != nil && e.Timeframe != nil { + return true + } + + return false +} + +// SetTimeframe allocates a new e.Timeframe and returns the pointer to it. +func (e *EventTimelineWidget) SetTimeframe(v string) { + e.Timeframe = &v +} + +// GetTitle returns the Title field if non-nil, zero value otherwise. +func (e *EventTimelineWidget) GetTitle() bool { + if e == nil || e.Title == nil { + return false + } + return *e.Title +} + +// GetOkTitle returns a tuple with the Title field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventTimelineWidget) GetTitleOk() (bool, bool) { + if e == nil || e.Title == nil { + return false, false + } + return *e.Title, true +} + +// HasTitle returns a boolean if a field has been set. +func (e *EventTimelineWidget) HasTitle() bool { + if e != nil && e.Title != nil { + return true + } + + return false +} + +// SetTitle allocates a new e.Title and returns the pointer to it. +func (e *EventTimelineWidget) SetTitle(v bool) { + e.Title = &v +} + +// GetTitleAlign returns the TitleAlign field if non-nil, zero value otherwise. +func (e *EventTimelineWidget) GetTitleAlign() string { + if e == nil || e.TitleAlign == nil { + return "" + } + return *e.TitleAlign +} + +// GetOkTitleAlign returns a tuple with the TitleAlign field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventTimelineWidget) GetTitleAlignOk() (string, bool) { + if e == nil || e.TitleAlign == nil { + return "", false + } + return *e.TitleAlign, true +} + +// HasTitleAlign returns a boolean if a field has been set. +func (e *EventTimelineWidget) HasTitleAlign() bool { + if e != nil && e.TitleAlign != nil { + return true + } + + return false +} + +// SetTitleAlign allocates a new e.TitleAlign and returns the pointer to it. +func (e *EventTimelineWidget) SetTitleAlign(v string) { + e.TitleAlign = &v +} + +// GetTitleSize returns the TitleSize field if non-nil, zero value otherwise. +func (e *EventTimelineWidget) GetTitleSize() int { + if e == nil || e.TitleSize == nil { + return 0 + } + return *e.TitleSize +} + +// GetOkTitleSize returns a tuple with the TitleSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventTimelineWidget) GetTitleSizeOk() (int, bool) { + if e == nil || e.TitleSize == nil { + return 0, false + } + return *e.TitleSize, true +} + +// HasTitleSize returns a boolean if a field has been set. +func (e *EventTimelineWidget) HasTitleSize() bool { + if e != nil && e.TitleSize != nil { + return true + } + + return false +} + +// SetTitleSize allocates a new e.TitleSize and returns the pointer to it. +func (e *EventTimelineWidget) SetTitleSize(v int) { + e.TitleSize = &v +} + +// GetTitleText returns the TitleText field if non-nil, zero value otherwise. +func (e *EventTimelineWidget) GetTitleText() string { + if e == nil || e.TitleText == nil { + return "" + } + return *e.TitleText +} + +// GetOkTitleText returns a tuple with the TitleText field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventTimelineWidget) GetTitleTextOk() (string, bool) { + if e == nil || e.TitleText == nil { + return "", false + } + return *e.TitleText, true +} + +// HasTitleText returns a boolean if a field has been set. +func (e *EventTimelineWidget) HasTitleText() bool { + if e != nil && e.TitleText != nil { + return true + } + + return false +} + +// SetTitleText allocates a new e.TitleText and returns the pointer to it. +func (e *EventTimelineWidget) SetTitleText(v string) { + e.TitleText = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (e *EventTimelineWidget) GetType() string { + if e == nil || e.Type == nil { + return "" + } + return *e.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventTimelineWidget) GetTypeOk() (string, bool) { + if e == nil || e.Type == nil { + return "", false + } + return *e.Type, true +} + +// HasType returns a boolean if a field has been set. +func (e *EventTimelineWidget) HasType() bool { + if e != nil && e.Type != nil { + return true + } + + return false +} + +// SetType allocates a new e.Type and returns the pointer to it. +func (e *EventTimelineWidget) SetType(v string) { + e.Type = &v +} + +// GetWidth returns the Width field if non-nil, zero value otherwise. +func (e *EventTimelineWidget) GetWidth() int { + if e == nil || e.Width == nil { + return 0 + } + return *e.Width +} + +// GetOkWidth returns a tuple with the Width field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventTimelineWidget) GetWidthOk() (int, bool) { + if e == nil || e.Width == nil { + return 0, false + } + return *e.Width, true +} + +// HasWidth returns a boolean if a field has been set. +func (e *EventTimelineWidget) HasWidth() bool { + if e != nil && e.Width != nil { + return true + } + + return false +} + +// SetWidth allocates a new e.Width and returns the pointer to it. +func (e *EventTimelineWidget) SetWidth(v int) { + e.Width = &v +} + +// GetX returns the X field if non-nil, zero value otherwise. +func (e *EventTimelineWidget) GetX() int { + if e == nil || e.X == nil { + return 0 + } + return *e.X +} + +// GetOkX returns a tuple with the X field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventTimelineWidget) GetXOk() (int, bool) { + if e == nil || e.X == nil { + return 0, false + } + return *e.X, true +} + +// HasX returns a boolean if a field has been set. +func (e *EventTimelineWidget) HasX() bool { + if e != nil && e.X != nil { + return true + } + + return false +} + +// SetX allocates a new e.X and returns the pointer to it. +func (e *EventTimelineWidget) SetX(v int) { + e.X = &v +} + +// GetY returns the Y field if non-nil, zero value otherwise. +func (e *EventTimelineWidget) GetY() int { + if e == nil || e.Y == nil { + return 0 + } + return *e.Y +} + +// GetOkY returns a tuple with the Y field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (e *EventTimelineWidget) GetYOk() (int, bool) { + if e == nil || e.Y == nil { + return 0, false + } + return *e.Y, true +} + +// HasY returns a boolean if a field has been set. +func (e *EventTimelineWidget) HasY() bool { + if e != nil && e.Y != nil { + return true + } + + return false +} + +// SetY allocates a new e.Y and returns the pointer to it. +func (e *EventTimelineWidget) SetY(v int) { + e.Y = &v +} + +// GetColor returns the Color field if non-nil, zero value otherwise. +func (f *FreeTextWidget) GetColor() string { + if f == nil || f.Color == nil { + return "" + } + return *f.Color +} + +// GetOkColor returns a tuple with the Color field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (f *FreeTextWidget) GetColorOk() (string, bool) { + if f == nil || f.Color == nil { + return "", false + } + return *f.Color, true +} + +// HasColor returns a boolean if a field has been set. +func (f *FreeTextWidget) HasColor() bool { + if f != nil && f.Color != nil { + return true + } + + return false +} + +// SetColor allocates a new f.Color and returns the pointer to it. +func (f *FreeTextWidget) SetColor(v string) { + f.Color = &v +} + +// GetFontSize returns the FontSize field if non-nil, zero value otherwise. +func (f *FreeTextWidget) GetFontSize() string { + if f == nil || f.FontSize == nil { + return "" + } + return *f.FontSize +} + +// GetOkFontSize returns a tuple with the FontSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (f *FreeTextWidget) GetFontSizeOk() (string, bool) { + if f == nil || f.FontSize == nil { + return "", false + } + return *f.FontSize, true +} + +// HasFontSize returns a boolean if a field has been set. +func (f *FreeTextWidget) HasFontSize() bool { + if f != nil && f.FontSize != nil { + return true + } + + return false +} + +// SetFontSize allocates a new f.FontSize and returns the pointer to it. +func (f *FreeTextWidget) SetFontSize(v string) { + f.FontSize = &v +} + +// GetHeight returns the Height field if non-nil, zero value otherwise. +func (f *FreeTextWidget) GetHeight() int { + if f == nil || f.Height == nil { + return 0 + } + return *f.Height +} + +// GetOkHeight returns a tuple with the Height field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (f *FreeTextWidget) GetHeightOk() (int, bool) { + if f == nil || f.Height == nil { + return 0, false + } + return *f.Height, true +} + +// HasHeight returns a boolean if a field has been set. +func (f *FreeTextWidget) HasHeight() bool { + if f != nil && f.Height != nil { + return true + } + + return false +} + +// SetHeight allocates a new f.Height and returns the pointer to it. +func (f *FreeTextWidget) SetHeight(v int) { + f.Height = &v +} + +// GetText returns the Text field if non-nil, zero value otherwise. +func (f *FreeTextWidget) GetText() string { + if f == nil || f.Text == nil { + return "" + } + return *f.Text +} + +// GetOkText returns a tuple with the Text field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (f *FreeTextWidget) GetTextOk() (string, bool) { + if f == nil || f.Text == nil { + return "", false + } + return *f.Text, true +} + +// HasText returns a boolean if a field has been set. +func (f *FreeTextWidget) HasText() bool { + if f != nil && f.Text != nil { + return true + } + + return false +} + +// SetText allocates a new f.Text and returns the pointer to it. +func (f *FreeTextWidget) SetText(v string) { + f.Text = &v +} + +// GetTextAlign returns the TextAlign field if non-nil, zero value otherwise. +func (f *FreeTextWidget) GetTextAlign() string { + if f == nil || f.TextAlign == nil { + return "" + } + return *f.TextAlign +} + +// GetOkTextAlign returns a tuple with the TextAlign field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (f *FreeTextWidget) GetTextAlignOk() (string, bool) { + if f == nil || f.TextAlign == nil { + return "", false + } + return *f.TextAlign, true +} + +// HasTextAlign returns a boolean if a field has been set. +func (f *FreeTextWidget) HasTextAlign() bool { + if f != nil && f.TextAlign != nil { + return true + } + + return false +} + +// SetTextAlign allocates a new f.TextAlign and returns the pointer to it. +func (f *FreeTextWidget) SetTextAlign(v string) { + f.TextAlign = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (f *FreeTextWidget) GetType() string { + if f == nil || f.Type == nil { + return "" + } + return *f.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (f *FreeTextWidget) GetTypeOk() (string, bool) { + if f == nil || f.Type == nil { + return "", false + } + return *f.Type, true +} + +// HasType returns a boolean if a field has been set. +func (f *FreeTextWidget) HasType() bool { + if f != nil && f.Type != nil { + return true + } + + return false +} + +// SetType allocates a new f.Type and returns the pointer to it. +func (f *FreeTextWidget) SetType(v string) { + f.Type = &v +} + +// GetWidth returns the Width field if non-nil, zero value otherwise. +func (f *FreeTextWidget) GetWidth() int { + if f == nil || f.Width == nil { + return 0 + } + return *f.Width +} + +// GetOkWidth returns a tuple with the Width field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (f *FreeTextWidget) GetWidthOk() (int, bool) { + if f == nil || f.Width == nil { + return 0, false + } + return *f.Width, true +} + +// HasWidth returns a boolean if a field has been set. +func (f *FreeTextWidget) HasWidth() bool { + if f != nil && f.Width != nil { + return true + } + + return false +} + +// SetWidth allocates a new f.Width and returns the pointer to it. +func (f *FreeTextWidget) SetWidth(v int) { + f.Width = &v +} + +// GetX returns the X field if non-nil, zero value otherwise. +func (f *FreeTextWidget) GetX() int { + if f == nil || f.X == nil { + return 0 + } + return *f.X +} + +// GetOkX returns a tuple with the X field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (f *FreeTextWidget) GetXOk() (int, bool) { + if f == nil || f.X == nil { + return 0, false + } + return *f.X, true +} + +// HasX returns a boolean if a field has been set. +func (f *FreeTextWidget) HasX() bool { + if f != nil && f.X != nil { + return true + } + + return false +} + +// SetX allocates a new f.X and returns the pointer to it. +func (f *FreeTextWidget) SetX(v int) { + f.X = &v +} + +// GetY returns the Y field if non-nil, zero value otherwise. +func (f *FreeTextWidget) GetY() int { + if f == nil || f.Y == nil { + return 0 + } + return *f.Y +} + +// GetOkY returns a tuple with the Y field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (f *FreeTextWidget) GetYOk() (int, bool) { + if f == nil || f.Y == nil { + return 0, false + } + return *f.Y, true +} + +// HasY returns a boolean if a field has been set. +func (f *FreeTextWidget) HasY() bool { + if f != nil && f.Y != nil { + return true + } + + return false +} + +// SetY allocates a new f.Y and returns the pointer to it. +func (f *FreeTextWidget) SetY(v int) { + f.Y = &v +} + +// GetDefinition returns the Definition field if non-nil, zero value otherwise. +func (g *Graph) GetDefinition() GraphDefinition { + if g == nil || g.Definition == nil { + return GraphDefinition{} + } + return *g.Definition +} + +// GetOkDefinition returns a tuple with the Definition field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *Graph) GetDefinitionOk() (GraphDefinition, bool) { + if g == nil || g.Definition == nil { + return GraphDefinition{}, false + } + return *g.Definition, true +} + +// HasDefinition returns a boolean if a field has been set. +func (g *Graph) HasDefinition() bool { + if g != nil && g.Definition != nil { + return true + } + + return false +} + +// SetDefinition allocates a new g.Definition and returns the pointer to it. +func (g *Graph) SetDefinition(v GraphDefinition) { + g.Definition = &v +} + +// GetTitle returns the Title field if non-nil, zero value otherwise. +func (g *Graph) GetTitle() string { + if g == nil || g.Title == nil { + return "" + } + return *g.Title +} + +// GetOkTitle returns a tuple with the Title field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *Graph) GetTitleOk() (string, bool) { + if g == nil || g.Title == nil { + return "", false + } + return *g.Title, true +} + +// HasTitle returns a boolean if a field has been set. +func (g *Graph) HasTitle() bool { + if g != nil && g.Title != nil { + return true + } + + return false +} + +// SetTitle allocates a new g.Title and returns the pointer to it. +func (g *Graph) SetTitle(v string) { + g.Title = &v +} + +// GetAutoscale returns the Autoscale field if non-nil, zero value otherwise. +func (g *GraphDefinition) GetAutoscale() bool { + if g == nil || g.Autoscale == nil { + return false + } + return *g.Autoscale +} + +// GetOkAutoscale returns a tuple with the Autoscale field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinition) GetAutoscaleOk() (bool, bool) { + if g == nil || g.Autoscale == nil { + return false, false + } + return *g.Autoscale, true +} + +// HasAutoscale returns a boolean if a field has been set. +func (g *GraphDefinition) HasAutoscale() bool { + if g != nil && g.Autoscale != nil { + return true + } + + return false +} + +// SetAutoscale allocates a new g.Autoscale and returns the pointer to it. +func (g *GraphDefinition) SetAutoscale(v bool) { + g.Autoscale = &v +} + +// GetCustomUnit returns the CustomUnit field if non-nil, zero value otherwise. +func (g *GraphDefinition) GetCustomUnit() string { + if g == nil || g.CustomUnit == nil { + return "" + } + return *g.CustomUnit +} + +// GetOkCustomUnit returns a tuple with the CustomUnit field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinition) GetCustomUnitOk() (string, bool) { + if g == nil || g.CustomUnit == nil { + return "", false + } + return *g.CustomUnit, true +} + +// HasCustomUnit returns a boolean if a field has been set. +func (g *GraphDefinition) HasCustomUnit() bool { + if g != nil && g.CustomUnit != nil { + return true + } + + return false +} + +// SetCustomUnit allocates a new g.CustomUnit and returns the pointer to it. +func (g *GraphDefinition) SetCustomUnit(v string) { + g.CustomUnit = &v +} + +// GetIncludeNoMetricHosts returns the IncludeNoMetricHosts field if non-nil, zero value otherwise. +func (g *GraphDefinition) GetIncludeNoMetricHosts() bool { + if g == nil || g.IncludeNoMetricHosts == nil { + return false + } + return *g.IncludeNoMetricHosts +} + +// GetOkIncludeNoMetricHosts returns a tuple with the IncludeNoMetricHosts field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinition) GetIncludeNoMetricHostsOk() (bool, bool) { + if g == nil || g.IncludeNoMetricHosts == nil { + return false, false + } + return *g.IncludeNoMetricHosts, true +} + +// HasIncludeNoMetricHosts returns a boolean if a field has been set. +func (g *GraphDefinition) HasIncludeNoMetricHosts() bool { + if g != nil && g.IncludeNoMetricHosts != nil { + return true + } + + return false +} + +// SetIncludeNoMetricHosts allocates a new g.IncludeNoMetricHosts and returns the pointer to it. +func (g *GraphDefinition) SetIncludeNoMetricHosts(v bool) { + g.IncludeNoMetricHosts = &v +} + +// GetIncludeUngroupedHosts returns the IncludeUngroupedHosts field if non-nil, zero value otherwise. +func (g *GraphDefinition) GetIncludeUngroupedHosts() bool { + if g == nil || g.IncludeUngroupedHosts == nil { + return false + } + return *g.IncludeUngroupedHosts +} + +// GetOkIncludeUngroupedHosts returns a tuple with the IncludeUngroupedHosts field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinition) GetIncludeUngroupedHostsOk() (bool, bool) { + if g == nil || g.IncludeUngroupedHosts == nil { + return false, false + } + return *g.IncludeUngroupedHosts, true +} + +// HasIncludeUngroupedHosts returns a boolean if a field has been set. +func (g *GraphDefinition) HasIncludeUngroupedHosts() bool { + if g != nil && g.IncludeUngroupedHosts != nil { + return true + } + + return false +} + +// SetIncludeUngroupedHosts allocates a new g.IncludeUngroupedHosts and returns the pointer to it. +func (g *GraphDefinition) SetIncludeUngroupedHosts(v bool) { + g.IncludeUngroupedHosts = &v +} + +// GetPrecision returns the Precision field if non-nil, zero value otherwise. +func (g *GraphDefinition) GetPrecision() string { + if g == nil || g.Precision == nil { + return "" + } + return *g.Precision +} + +// GetOkPrecision returns a tuple with the Precision field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinition) GetPrecisionOk() (string, bool) { + if g == nil || g.Precision == nil { + return "", false + } + return *g.Precision, true +} + +// HasPrecision returns a boolean if a field has been set. +func (g *GraphDefinition) HasPrecision() bool { + if g != nil && g.Precision != nil { + return true + } + + return false +} + +// SetPrecision allocates a new g.Precision and returns the pointer to it. +func (g *GraphDefinition) SetPrecision(v string) { + g.Precision = &v +} + +// GetStyle returns the Style field if non-nil, zero value otherwise. +func (g *GraphDefinition) GetStyle() Style { + if g == nil || g.Style == nil { + return Style{} + } + return *g.Style +} + +// GetOkStyle returns a tuple with the Style field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinition) GetStyleOk() (Style, bool) { + if g == nil || g.Style == nil { + return Style{}, false + } + return *g.Style, true +} + +// HasStyle returns a boolean if a field has been set. +func (g *GraphDefinition) HasStyle() bool { + if g != nil && g.Style != nil { + return true + } + + return false +} + +// SetStyle allocates a new g.Style and returns the pointer to it. +func (g *GraphDefinition) SetStyle(v Style) { + g.Style = &v +} + +// GetTextAlign returns the TextAlign field if non-nil, zero value otherwise. +func (g *GraphDefinition) GetTextAlign() string { + if g == nil || g.TextAlign == nil { + return "" + } + return *g.TextAlign +} + +// GetOkTextAlign returns a tuple with the TextAlign field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinition) GetTextAlignOk() (string, bool) { + if g == nil || g.TextAlign == nil { + return "", false + } + return *g.TextAlign, true +} + +// HasTextAlign returns a boolean if a field has been set. +func (g *GraphDefinition) HasTextAlign() bool { + if g != nil && g.TextAlign != nil { + return true + } + + return false +} + +// SetTextAlign allocates a new g.TextAlign and returns the pointer to it. +func (g *GraphDefinition) SetTextAlign(v string) { + g.TextAlign = &v +} + +// GetViz returns the Viz field if non-nil, zero value otherwise. +func (g *GraphDefinition) GetViz() string { + if g == nil || g.Viz == nil { + return "" + } + return *g.Viz +} + +// GetOkViz returns a tuple with the Viz field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinition) GetVizOk() (string, bool) { + if g == nil || g.Viz == nil { + return "", false + } + return *g.Viz, true +} + +// HasViz returns a boolean if a field has been set. +func (g *GraphDefinition) HasViz() bool { + if g != nil && g.Viz != nil { + return true + } + + return false +} + +// SetViz allocates a new g.Viz and returns the pointer to it. +func (g *GraphDefinition) SetViz(v string) { + g.Viz = &v +} + +// GetLabel returns the Label field if non-nil, zero value otherwise. +func (g *GraphDefinitionMarker) GetLabel() string { + if g == nil || g.Label == nil { + return "" + } + return *g.Label +} + +// GetOkLabel returns a tuple with the Label field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinitionMarker) GetLabelOk() (string, bool) { + if g == nil || g.Label == nil { + return "", false + } + return *g.Label, true +} + +// HasLabel returns a boolean if a field has been set. +func (g *GraphDefinitionMarker) HasLabel() bool { + if g != nil && g.Label != nil { + return true + } + + return false +} + +// SetLabel allocates a new g.Label and returns the pointer to it. +func (g *GraphDefinitionMarker) SetLabel(v string) { + g.Label = &v +} + +// GetMax returns the Max field if non-nil, zero value otherwise. +func (g *GraphDefinitionMarker) GetMax() json.Number { + if g == nil || g.Max == nil { + return "" + } + return *g.Max +} + +// GetOkMax returns a tuple with the Max field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinitionMarker) GetMaxOk() (json.Number, bool) { + if g == nil || g.Max == nil { + return "", false + } + return *g.Max, true +} + +// HasMax returns a boolean if a field has been set. +func (g *GraphDefinitionMarker) HasMax() bool { + if g != nil && g.Max != nil { + return true + } + + return false +} + +// SetMax allocates a new g.Max and returns the pointer to it. +func (g *GraphDefinitionMarker) SetMax(v json.Number) { + g.Max = &v +} + +// GetMin returns the Min field if non-nil, zero value otherwise. +func (g *GraphDefinitionMarker) GetMin() json.Number { + if g == nil || g.Min == nil { + return "" + } + return *g.Min +} + +// GetOkMin returns a tuple with the Min field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinitionMarker) GetMinOk() (json.Number, bool) { + if g == nil || g.Min == nil { + return "", false + } + return *g.Min, true +} + +// HasMin returns a boolean if a field has been set. +func (g *GraphDefinitionMarker) HasMin() bool { + if g != nil && g.Min != nil { + return true + } + + return false +} + +// SetMin allocates a new g.Min and returns the pointer to it. +func (g *GraphDefinitionMarker) SetMin(v json.Number) { + g.Min = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (g *GraphDefinitionMarker) GetType() string { + if g == nil || g.Type == nil { + return "" + } + return *g.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinitionMarker) GetTypeOk() (string, bool) { + if g == nil || g.Type == nil { + return "", false + } + return *g.Type, true +} + +// HasType returns a boolean if a field has been set. +func (g *GraphDefinitionMarker) HasType() bool { + if g != nil && g.Type != nil { + return true + } + + return false +} + +// SetType allocates a new g.Type and returns the pointer to it. +func (g *GraphDefinitionMarker) SetType(v string) { + g.Type = &v +} + +// GetVal returns the Val field if non-nil, zero value otherwise. +func (g *GraphDefinitionMarker) GetVal() json.Number { + if g == nil || g.Val == nil { + return "" + } + return *g.Val +} + +// GetOkVal returns a tuple with the Val field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinitionMarker) GetValOk() (json.Number, bool) { + if g == nil || g.Val == nil { + return "", false + } + return *g.Val, true +} + +// HasVal returns a boolean if a field has been set. +func (g *GraphDefinitionMarker) HasVal() bool { + if g != nil && g.Val != nil { + return true + } + + return false +} + +// SetVal allocates a new g.Val and returns the pointer to it. +func (g *GraphDefinitionMarker) SetVal(v json.Number) { + g.Val = &v +} + +// GetValue returns the Value field if non-nil, zero value otherwise. +func (g *GraphDefinitionMarker) GetValue() string { + if g == nil || g.Value == nil { + return "" + } + return *g.Value +} + +// GetOkValue returns a tuple with the Value field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinitionMarker) GetValueOk() (string, bool) { + if g == nil || g.Value == nil { + return "", false + } + return *g.Value, true +} + +// HasValue returns a boolean if a field has been set. +func (g *GraphDefinitionMarker) HasValue() bool { + if g != nil && g.Value != nil { + return true + } + + return false +} + +// SetValue allocates a new g.Value and returns the pointer to it. +func (g *GraphDefinitionMarker) SetValue(v string) { + g.Value = &v +} + +// GetAggregator returns the Aggregator field if non-nil, zero value otherwise. +func (g *GraphDefinitionRequest) GetAggregator() string { + if g == nil || g.Aggregator == nil { + return "" + } + return *g.Aggregator +} + +// GetOkAggregator returns a tuple with the Aggregator field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinitionRequest) GetAggregatorOk() (string, bool) { + if g == nil || g.Aggregator == nil { + return "", false + } + return *g.Aggregator, true +} + +// HasAggregator returns a boolean if a field has been set. +func (g *GraphDefinitionRequest) HasAggregator() bool { + if g != nil && g.Aggregator != nil { + return true + } + + return false +} + +// SetAggregator allocates a new g.Aggregator and returns the pointer to it. +func (g *GraphDefinitionRequest) SetAggregator(v string) { + g.Aggregator = &v +} + +// GetChangeType returns the ChangeType field if non-nil, zero value otherwise. +func (g *GraphDefinitionRequest) GetChangeType() string { + if g == nil || g.ChangeType == nil { + return "" + } + return *g.ChangeType +} + +// GetOkChangeType returns a tuple with the ChangeType field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinitionRequest) GetChangeTypeOk() (string, bool) { + if g == nil || g.ChangeType == nil { + return "", false + } + return *g.ChangeType, true +} + +// HasChangeType returns a boolean if a field has been set. +func (g *GraphDefinitionRequest) HasChangeType() bool { + if g != nil && g.ChangeType != nil { + return true + } + + return false +} + +// SetChangeType allocates a new g.ChangeType and returns the pointer to it. +func (g *GraphDefinitionRequest) SetChangeType(v string) { + g.ChangeType = &v +} + +// GetCompareTo returns the CompareTo field if non-nil, zero value otherwise. +func (g *GraphDefinitionRequest) GetCompareTo() string { + if g == nil || g.CompareTo == nil { + return "" + } + return *g.CompareTo +} + +// GetOkCompareTo returns a tuple with the CompareTo field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinitionRequest) GetCompareToOk() (string, bool) { + if g == nil || g.CompareTo == nil { + return "", false + } + return *g.CompareTo, true +} + +// HasCompareTo returns a boolean if a field has been set. +func (g *GraphDefinitionRequest) HasCompareTo() bool { + if g != nil && g.CompareTo != nil { + return true + } + + return false +} + +// SetCompareTo allocates a new g.CompareTo and returns the pointer to it. +func (g *GraphDefinitionRequest) SetCompareTo(v string) { + g.CompareTo = &v +} + +// GetExtraCol returns the ExtraCol field if non-nil, zero value otherwise. +func (g *GraphDefinitionRequest) GetExtraCol() string { + if g == nil || g.ExtraCol == nil { + return "" + } + return *g.ExtraCol +} + +// GetOkExtraCol returns a tuple with the ExtraCol field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinitionRequest) GetExtraColOk() (string, bool) { + if g == nil || g.ExtraCol == nil { + return "", false + } + return *g.ExtraCol, true +} + +// HasExtraCol returns a boolean if a field has been set. +func (g *GraphDefinitionRequest) HasExtraCol() bool { + if g != nil && g.ExtraCol != nil { + return true + } + + return false +} + +// SetExtraCol allocates a new g.ExtraCol and returns the pointer to it. +func (g *GraphDefinitionRequest) SetExtraCol(v string) { + g.ExtraCol = &v +} + +// GetIncreaseGood returns the IncreaseGood field if non-nil, zero value otherwise. +func (g *GraphDefinitionRequest) GetIncreaseGood() bool { + if g == nil || g.IncreaseGood == nil { + return false + } + return *g.IncreaseGood +} + +// GetOkIncreaseGood returns a tuple with the IncreaseGood field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinitionRequest) GetIncreaseGoodOk() (bool, bool) { + if g == nil || g.IncreaseGood == nil { + return false, false + } + return *g.IncreaseGood, true +} + +// HasIncreaseGood returns a boolean if a field has been set. +func (g *GraphDefinitionRequest) HasIncreaseGood() bool { + if g != nil && g.IncreaseGood != nil { + return true + } + + return false +} + +// SetIncreaseGood allocates a new g.IncreaseGood and returns the pointer to it. +func (g *GraphDefinitionRequest) SetIncreaseGood(v bool) { + g.IncreaseGood = &v +} + +// GetOrderBy returns the OrderBy field if non-nil, zero value otherwise. +func (g *GraphDefinitionRequest) GetOrderBy() string { + if g == nil || g.OrderBy == nil { + return "" + } + return *g.OrderBy +} + +// GetOkOrderBy returns a tuple with the OrderBy field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinitionRequest) GetOrderByOk() (string, bool) { + if g == nil || g.OrderBy == nil { + return "", false + } + return *g.OrderBy, true +} + +// HasOrderBy returns a boolean if a field has been set. +func (g *GraphDefinitionRequest) HasOrderBy() bool { + if g != nil && g.OrderBy != nil { + return true + } + + return false +} + +// SetOrderBy allocates a new g.OrderBy and returns the pointer to it. +func (g *GraphDefinitionRequest) SetOrderBy(v string) { + g.OrderBy = &v +} + +// GetOrderDirection returns the OrderDirection field if non-nil, zero value otherwise. +func (g *GraphDefinitionRequest) GetOrderDirection() string { + if g == nil || g.OrderDirection == nil { + return "" + } + return *g.OrderDirection +} + +// GetOkOrderDirection returns a tuple with the OrderDirection field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinitionRequest) GetOrderDirectionOk() (string, bool) { + if g == nil || g.OrderDirection == nil { + return "", false + } + return *g.OrderDirection, true +} + +// HasOrderDirection returns a boolean if a field has been set. +func (g *GraphDefinitionRequest) HasOrderDirection() bool { + if g != nil && g.OrderDirection != nil { + return true + } + + return false +} + +// SetOrderDirection allocates a new g.OrderDirection and returns the pointer to it. +func (g *GraphDefinitionRequest) SetOrderDirection(v string) { + g.OrderDirection = &v +} + +// GetQuery returns the Query field if non-nil, zero value otherwise. +func (g *GraphDefinitionRequest) GetQuery() string { + if g == nil || g.Query == nil { + return "" + } + return *g.Query +} + +// GetOkQuery returns a tuple with the Query field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinitionRequest) GetQueryOk() (string, bool) { + if g == nil || g.Query == nil { + return "", false + } + return *g.Query, true +} + +// HasQuery returns a boolean if a field has been set. +func (g *GraphDefinitionRequest) HasQuery() bool { + if g != nil && g.Query != nil { + return true + } + + return false +} + +// SetQuery allocates a new g.Query and returns the pointer to it. +func (g *GraphDefinitionRequest) SetQuery(v string) { + g.Query = &v +} + +// GetStacked returns the Stacked field if non-nil, zero value otherwise. +func (g *GraphDefinitionRequest) GetStacked() bool { + if g == nil || g.Stacked == nil { + return false + } + return *g.Stacked +} + +// GetOkStacked returns a tuple with the Stacked field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinitionRequest) GetStackedOk() (bool, bool) { + if g == nil || g.Stacked == nil { + return false, false + } + return *g.Stacked, true +} + +// HasStacked returns a boolean if a field has been set. +func (g *GraphDefinitionRequest) HasStacked() bool { + if g != nil && g.Stacked != nil { + return true + } + + return false +} + +// SetStacked allocates a new g.Stacked and returns the pointer to it. +func (g *GraphDefinitionRequest) SetStacked(v bool) { + g.Stacked = &v +} + +// GetStyle returns the Style field if non-nil, zero value otherwise. +func (g *GraphDefinitionRequest) GetStyle() GraphDefinitionRequestStyle { + if g == nil || g.Style == nil { + return GraphDefinitionRequestStyle{} + } + return *g.Style +} + +// GetOkStyle returns a tuple with the Style field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinitionRequest) GetStyleOk() (GraphDefinitionRequestStyle, bool) { + if g == nil || g.Style == nil { + return GraphDefinitionRequestStyle{}, false + } + return *g.Style, true +} + +// HasStyle returns a boolean if a field has been set. +func (g *GraphDefinitionRequest) HasStyle() bool { + if g != nil && g.Style != nil { + return true + } + + return false +} + +// SetStyle allocates a new g.Style and returns the pointer to it. +func (g *GraphDefinitionRequest) SetStyle(v GraphDefinitionRequestStyle) { + g.Style = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (g *GraphDefinitionRequest) GetType() string { + if g == nil || g.Type == nil { + return "" + } + return *g.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinitionRequest) GetTypeOk() (string, bool) { + if g == nil || g.Type == nil { + return "", false + } + return *g.Type, true +} + +// HasType returns a boolean if a field has been set. +func (g *GraphDefinitionRequest) HasType() bool { + if g != nil && g.Type != nil { + return true + } + + return false +} + +// SetType allocates a new g.Type and returns the pointer to it. +func (g *GraphDefinitionRequest) SetType(v string) { + g.Type = &v +} + +// GetPalette returns the Palette field if non-nil, zero value otherwise. +func (g *GraphDefinitionRequestStyle) GetPalette() string { + if g == nil || g.Palette == nil { + return "" + } + return *g.Palette +} + +// GetOkPalette returns a tuple with the Palette field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinitionRequestStyle) GetPaletteOk() (string, bool) { + if g == nil || g.Palette == nil { + return "", false + } + return *g.Palette, true +} + +// HasPalette returns a boolean if a field has been set. +func (g *GraphDefinitionRequestStyle) HasPalette() bool { + if g != nil && g.Palette != nil { + return true + } + + return false +} + +// SetPalette allocates a new g.Palette and returns the pointer to it. +func (g *GraphDefinitionRequestStyle) SetPalette(v string) { + g.Palette = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (g *GraphDefinitionRequestStyle) GetType() string { + if g == nil || g.Type == nil { + return "" + } + return *g.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinitionRequestStyle) GetTypeOk() (string, bool) { + if g == nil || g.Type == nil { + return "", false + } + return *g.Type, true +} + +// HasType returns a boolean if a field has been set. +func (g *GraphDefinitionRequestStyle) HasType() bool { + if g != nil && g.Type != nil { + return true + } + + return false +} + +// SetType allocates a new g.Type and returns the pointer to it. +func (g *GraphDefinitionRequestStyle) SetType(v string) { + g.Type = &v +} + +// GetWidth returns the Width field if non-nil, zero value otherwise. +func (g *GraphDefinitionRequestStyle) GetWidth() string { + if g == nil || g.Width == nil { + return "" + } + return *g.Width +} + +// GetOkWidth returns a tuple with the Width field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphDefinitionRequestStyle) GetWidthOk() (string, bool) { + if g == nil || g.Width == nil { + return "", false + } + return *g.Width, true +} + +// HasWidth returns a boolean if a field has been set. +func (g *GraphDefinitionRequestStyle) HasWidth() bool { + if g != nil && g.Width != nil { + return true + } + + return false +} + +// SetWidth allocates a new g.Width and returns the pointer to it. +func (g *GraphDefinitionRequestStyle) SetWidth(v string) { + g.Width = &v +} + +// GetQuery returns the Query field if non-nil, zero value otherwise. +func (g *GraphEvent) GetQuery() string { + if g == nil || g.Query == nil { + return "" + } + return *g.Query +} + +// GetOkQuery returns a tuple with the Query field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphEvent) GetQueryOk() (string, bool) { + if g == nil || g.Query == nil { + return "", false + } + return *g.Query, true +} + +// HasQuery returns a boolean if a field has been set. +func (g *GraphEvent) HasQuery() bool { + if g != nil && g.Query != nil { + return true + } + + return false +} + +// SetQuery allocates a new g.Query and returns the pointer to it. +func (g *GraphEvent) SetQuery(v string) { + g.Query = &v +} + +// GetHeight returns the Height field if non-nil, zero value otherwise. +func (g *GraphWidget) GetHeight() int { + if g == nil || g.Height == nil { + return 0 + } + return *g.Height +} + +// GetOkHeight returns a tuple with the Height field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphWidget) GetHeightOk() (int, bool) { + if g == nil || g.Height == nil { + return 0, false + } + return *g.Height, true +} + +// HasHeight returns a boolean if a field has been set. +func (g *GraphWidget) HasHeight() bool { + if g != nil && g.Height != nil { + return true + } + + return false +} + +// SetHeight allocates a new g.Height and returns the pointer to it. +func (g *GraphWidget) SetHeight(v int) { + g.Height = &v +} + +// GetLegend returns the Legend field if non-nil, zero value otherwise. +func (g *GraphWidget) GetLegend() bool { + if g == nil || g.Legend == nil { + return false + } + return *g.Legend +} + +// GetOkLegend returns a tuple with the Legend field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphWidget) GetLegendOk() (bool, bool) { + if g == nil || g.Legend == nil { + return false, false + } + return *g.Legend, true +} + +// HasLegend returns a boolean if a field has been set. +func (g *GraphWidget) HasLegend() bool { + if g != nil && g.Legend != nil { + return true + } + + return false +} + +// SetLegend allocates a new g.Legend and returns the pointer to it. +func (g *GraphWidget) SetLegend(v bool) { + g.Legend = &v +} + +// GetLegendSize returns the LegendSize field if non-nil, zero value otherwise. +func (g *GraphWidget) GetLegendSize() int { + if g == nil || g.LegendSize == nil { + return 0 + } + return *g.LegendSize +} + +// GetOkLegendSize returns a tuple with the LegendSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphWidget) GetLegendSizeOk() (int, bool) { + if g == nil || g.LegendSize == nil { + return 0, false + } + return *g.LegendSize, true +} + +// HasLegendSize returns a boolean if a field has been set. +func (g *GraphWidget) HasLegendSize() bool { + if g != nil && g.LegendSize != nil { + return true + } + + return false +} + +// SetLegendSize allocates a new g.LegendSize and returns the pointer to it. +func (g *GraphWidget) SetLegendSize(v int) { + g.LegendSize = &v +} + +// GetTileDef returns the TileDef field if non-nil, zero value otherwise. +func (g *GraphWidget) GetTileDef() TileDef { + if g == nil || g.TileDef == nil { + return TileDef{} + } + return *g.TileDef +} + +// GetOkTileDef returns a tuple with the TileDef field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphWidget) GetTileDefOk() (TileDef, bool) { + if g == nil || g.TileDef == nil { + return TileDef{}, false + } + return *g.TileDef, true +} + +// HasTileDef returns a boolean if a field has been set. +func (g *GraphWidget) HasTileDef() bool { + if g != nil && g.TileDef != nil { + return true + } + + return false +} + +// SetTileDef allocates a new g.TileDef and returns the pointer to it. +func (g *GraphWidget) SetTileDef(v TileDef) { + g.TileDef = &v +} + +// GetTimeframe returns the Timeframe field if non-nil, zero value otherwise. +func (g *GraphWidget) GetTimeframe() string { + if g == nil || g.Timeframe == nil { + return "" + } + return *g.Timeframe +} + +// GetOkTimeframe returns a tuple with the Timeframe field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphWidget) GetTimeframeOk() (string, bool) { + if g == nil || g.Timeframe == nil { + return "", false + } + return *g.Timeframe, true +} + +// HasTimeframe returns a boolean if a field has been set. +func (g *GraphWidget) HasTimeframe() bool { + if g != nil && g.Timeframe != nil { + return true + } + + return false +} + +// SetTimeframe allocates a new g.Timeframe and returns the pointer to it. +func (g *GraphWidget) SetTimeframe(v string) { + g.Timeframe = &v +} + +// GetTitle returns the Title field if non-nil, zero value otherwise. +func (g *GraphWidget) GetTitle() bool { + if g == nil || g.Title == nil { + return false + } + return *g.Title +} + +// GetOkTitle returns a tuple with the Title field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphWidget) GetTitleOk() (bool, bool) { + if g == nil || g.Title == nil { + return false, false + } + return *g.Title, true +} + +// HasTitle returns a boolean if a field has been set. +func (g *GraphWidget) HasTitle() bool { + if g != nil && g.Title != nil { + return true + } + + return false +} + +// SetTitle allocates a new g.Title and returns the pointer to it. +func (g *GraphWidget) SetTitle(v bool) { + g.Title = &v +} + +// GetTitleAlign returns the TitleAlign field if non-nil, zero value otherwise. +func (g *GraphWidget) GetTitleAlign() string { + if g == nil || g.TitleAlign == nil { + return "" + } + return *g.TitleAlign +} + +// GetOkTitleAlign returns a tuple with the TitleAlign field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphWidget) GetTitleAlignOk() (string, bool) { + if g == nil || g.TitleAlign == nil { + return "", false + } + return *g.TitleAlign, true +} + +// HasTitleAlign returns a boolean if a field has been set. +func (g *GraphWidget) HasTitleAlign() bool { + if g != nil && g.TitleAlign != nil { + return true + } + + return false +} + +// SetTitleAlign allocates a new g.TitleAlign and returns the pointer to it. +func (g *GraphWidget) SetTitleAlign(v string) { + g.TitleAlign = &v +} + +// GetTitleSize returns the TitleSize field if non-nil, zero value otherwise. +func (g *GraphWidget) GetTitleSize() int { + if g == nil || g.TitleSize == nil { + return 0 + } + return *g.TitleSize +} + +// GetOkTitleSize returns a tuple with the TitleSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphWidget) GetTitleSizeOk() (int, bool) { + if g == nil || g.TitleSize == nil { + return 0, false + } + return *g.TitleSize, true +} + +// HasTitleSize returns a boolean if a field has been set. +func (g *GraphWidget) HasTitleSize() bool { + if g != nil && g.TitleSize != nil { + return true + } + + return false +} + +// SetTitleSize allocates a new g.TitleSize and returns the pointer to it. +func (g *GraphWidget) SetTitleSize(v int) { + g.TitleSize = &v +} + +// GetTitleText returns the TitleText field if non-nil, zero value otherwise. +func (g *GraphWidget) GetTitleText() string { + if g == nil || g.TitleText == nil { + return "" + } + return *g.TitleText +} + +// GetOkTitleText returns a tuple with the TitleText field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphWidget) GetTitleTextOk() (string, bool) { + if g == nil || g.TitleText == nil { + return "", false + } + return *g.TitleText, true +} + +// HasTitleText returns a boolean if a field has been set. +func (g *GraphWidget) HasTitleText() bool { + if g != nil && g.TitleText != nil { + return true + } + + return false +} + +// SetTitleText allocates a new g.TitleText and returns the pointer to it. +func (g *GraphWidget) SetTitleText(v string) { + g.TitleText = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (g *GraphWidget) GetType() string { + if g == nil || g.Type == nil { + return "" + } + return *g.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphWidget) GetTypeOk() (string, bool) { + if g == nil || g.Type == nil { + return "", false + } + return *g.Type, true +} + +// HasType returns a boolean if a field has been set. +func (g *GraphWidget) HasType() bool { + if g != nil && g.Type != nil { + return true + } + + return false +} + +// SetType allocates a new g.Type and returns the pointer to it. +func (g *GraphWidget) SetType(v string) { + g.Type = &v +} + +// GetWidth returns the Width field if non-nil, zero value otherwise. +func (g *GraphWidget) GetWidth() int { + if g == nil || g.Width == nil { + return 0 + } + return *g.Width +} + +// GetOkWidth returns a tuple with the Width field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphWidget) GetWidthOk() (int, bool) { + if g == nil || g.Width == nil { + return 0, false + } + return *g.Width, true +} + +// HasWidth returns a boolean if a field has been set. +func (g *GraphWidget) HasWidth() bool { + if g != nil && g.Width != nil { + return true + } + + return false +} + +// SetWidth allocates a new g.Width and returns the pointer to it. +func (g *GraphWidget) SetWidth(v int) { + g.Width = &v +} + +// GetX returns the X field if non-nil, zero value otherwise. +func (g *GraphWidget) GetX() int { + if g == nil || g.X == nil { + return 0 + } + return *g.X +} + +// GetOkX returns a tuple with the X field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphWidget) GetXOk() (int, bool) { + if g == nil || g.X == nil { + return 0, false + } + return *g.X, true +} + +// HasX returns a boolean if a field has been set. +func (g *GraphWidget) HasX() bool { + if g != nil && g.X != nil { + return true + } + + return false +} + +// SetX allocates a new g.X and returns the pointer to it. +func (g *GraphWidget) SetX(v int) { + g.X = &v +} + +// GetY returns the Y field if non-nil, zero value otherwise. +func (g *GraphWidget) GetY() int { + if g == nil || g.Y == nil { + return 0 + } + return *g.Y +} + +// GetOkY returns a tuple with the Y field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (g *GraphWidget) GetYOk() (int, bool) { + if g == nil || g.Y == nil { + return 0, false + } + return *g.Y, true +} + +// HasY returns a boolean if a field has been set. +func (g *GraphWidget) HasY() bool { + if g != nil && g.Y != nil { + return true + } + + return false +} + +// SetY allocates a new g.Y and returns the pointer to it. +func (g *GraphWidget) SetY(v int) { + g.Y = &v +} + +// GetEndTime returns the EndTime field if non-nil, zero value otherwise. +func (h *HostActionMute) GetEndTime() string { + if h == nil || h.EndTime == nil { + return "" + } + return *h.EndTime +} + +// GetOkEndTime returns a tuple with the EndTime field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (h *HostActionMute) GetEndTimeOk() (string, bool) { + if h == nil || h.EndTime == nil { + return "", false + } + return *h.EndTime, true +} + +// HasEndTime returns a boolean if a field has been set. +func (h *HostActionMute) HasEndTime() bool { + if h != nil && h.EndTime != nil { + return true + } + + return false +} + +// SetEndTime allocates a new h.EndTime and returns the pointer to it. +func (h *HostActionMute) SetEndTime(v string) { + h.EndTime = &v +} + +// GetMessage returns the Message field if non-nil, zero value otherwise. +func (h *HostActionMute) GetMessage() string { + if h == nil || h.Message == nil { + return "" + } + return *h.Message +} + +// GetOkMessage returns a tuple with the Message field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (h *HostActionMute) GetMessageOk() (string, bool) { + if h == nil || h.Message == nil { + return "", false + } + return *h.Message, true +} + +// HasMessage returns a boolean if a field has been set. +func (h *HostActionMute) HasMessage() bool { + if h != nil && h.Message != nil { + return true + } + + return false +} + +// SetMessage allocates a new h.Message and returns the pointer to it. +func (h *HostActionMute) SetMessage(v string) { + h.Message = &v +} + +// GetOverride returns the Override field if non-nil, zero value otherwise. +func (h *HostActionMute) GetOverride() bool { + if h == nil || h.Override == nil { + return false + } + return *h.Override +} + +// GetOkOverride returns a tuple with the Override field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (h *HostActionMute) GetOverrideOk() (bool, bool) { + if h == nil || h.Override == nil { + return false, false + } + return *h.Override, true +} + +// HasOverride returns a boolean if a field has been set. +func (h *HostActionMute) HasOverride() bool { + if h != nil && h.Override != nil { + return true + } + + return false +} + +// SetOverride allocates a new h.Override and returns the pointer to it. +func (h *HostActionMute) SetOverride(v bool) { + h.Override = &v +} + +// GetHeight returns the Height field if non-nil, zero value otherwise. +func (h *HostMapWidget) GetHeight() int { + if h == nil || h.Height == nil { + return 0 + } + return *h.Height +} + +// GetOkHeight returns a tuple with the Height field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (h *HostMapWidget) GetHeightOk() (int, bool) { + if h == nil || h.Height == nil { + return 0, false + } + return *h.Height, true +} + +// HasHeight returns a boolean if a field has been set. +func (h *HostMapWidget) HasHeight() bool { + if h != nil && h.Height != nil { + return true + } + + return false +} + +// SetHeight allocates a new h.Height and returns the pointer to it. +func (h *HostMapWidget) SetHeight(v int) { + h.Height = &v +} + +// GetLegend returns the Legend field if non-nil, zero value otherwise. +func (h *HostMapWidget) GetLegend() bool { + if h == nil || h.Legend == nil { + return false + } + return *h.Legend +} + +// GetOkLegend returns a tuple with the Legend field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (h *HostMapWidget) GetLegendOk() (bool, bool) { + if h == nil || h.Legend == nil { + return false, false + } + return *h.Legend, true +} + +// HasLegend returns a boolean if a field has been set. +func (h *HostMapWidget) HasLegend() bool { + if h != nil && h.Legend != nil { + return true + } + + return false +} + +// SetLegend allocates a new h.Legend and returns the pointer to it. +func (h *HostMapWidget) SetLegend(v bool) { + h.Legend = &v +} + +// GetLegendSize returns the LegendSize field if non-nil, zero value otherwise. +func (h *HostMapWidget) GetLegendSize() int { + if h == nil || h.LegendSize == nil { + return 0 + } + return *h.LegendSize +} + +// GetOkLegendSize returns a tuple with the LegendSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (h *HostMapWidget) GetLegendSizeOk() (int, bool) { + if h == nil || h.LegendSize == nil { + return 0, false + } + return *h.LegendSize, true +} + +// HasLegendSize returns a boolean if a field has been set. +func (h *HostMapWidget) HasLegendSize() bool { + if h != nil && h.LegendSize != nil { + return true + } + + return false +} + +// SetLegendSize allocates a new h.LegendSize and returns the pointer to it. +func (h *HostMapWidget) SetLegendSize(v int) { + h.LegendSize = &v +} + +// GetQuery returns the Query field if non-nil, zero value otherwise. +func (h *HostMapWidget) GetQuery() string { + if h == nil || h.Query == nil { + return "" + } + return *h.Query +} + +// GetOkQuery returns a tuple with the Query field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (h *HostMapWidget) GetQueryOk() (string, bool) { + if h == nil || h.Query == nil { + return "", false + } + return *h.Query, true +} + +// HasQuery returns a boolean if a field has been set. +func (h *HostMapWidget) HasQuery() bool { + if h != nil && h.Query != nil { + return true + } + + return false +} + +// SetQuery allocates a new h.Query and returns the pointer to it. +func (h *HostMapWidget) SetQuery(v string) { + h.Query = &v +} + +// GetTileDef returns the TileDef field if non-nil, zero value otherwise. +func (h *HostMapWidget) GetTileDef() TileDef { + if h == nil || h.TileDef == nil { + return TileDef{} + } + return *h.TileDef +} + +// GetOkTileDef returns a tuple with the TileDef field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (h *HostMapWidget) GetTileDefOk() (TileDef, bool) { + if h == nil || h.TileDef == nil { + return TileDef{}, false + } + return *h.TileDef, true +} + +// HasTileDef returns a boolean if a field has been set. +func (h *HostMapWidget) HasTileDef() bool { + if h != nil && h.TileDef != nil { + return true + } + + return false +} + +// SetTileDef allocates a new h.TileDef and returns the pointer to it. +func (h *HostMapWidget) SetTileDef(v TileDef) { + h.TileDef = &v +} + +// GetTimeframe returns the Timeframe field if non-nil, zero value otherwise. +func (h *HostMapWidget) GetTimeframe() string { + if h == nil || h.Timeframe == nil { + return "" + } + return *h.Timeframe +} + +// GetOkTimeframe returns a tuple with the Timeframe field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (h *HostMapWidget) GetTimeframeOk() (string, bool) { + if h == nil || h.Timeframe == nil { + return "", false + } + return *h.Timeframe, true +} + +// HasTimeframe returns a boolean if a field has been set. +func (h *HostMapWidget) HasTimeframe() bool { + if h != nil && h.Timeframe != nil { + return true + } + + return false +} + +// SetTimeframe allocates a new h.Timeframe and returns the pointer to it. +func (h *HostMapWidget) SetTimeframe(v string) { + h.Timeframe = &v +} + +// GetTitle returns the Title field if non-nil, zero value otherwise. +func (h *HostMapWidget) GetTitle() bool { + if h == nil || h.Title == nil { + return false + } + return *h.Title +} + +// GetOkTitle returns a tuple with the Title field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (h *HostMapWidget) GetTitleOk() (bool, bool) { + if h == nil || h.Title == nil { + return false, false + } + return *h.Title, true +} + +// HasTitle returns a boolean if a field has been set. +func (h *HostMapWidget) HasTitle() bool { + if h != nil && h.Title != nil { + return true + } + + return false +} + +// SetTitle allocates a new h.Title and returns the pointer to it. +func (h *HostMapWidget) SetTitle(v bool) { + h.Title = &v +} + +// GetTitleAlign returns the TitleAlign field if non-nil, zero value otherwise. +func (h *HostMapWidget) GetTitleAlign() string { + if h == nil || h.TitleAlign == nil { + return "" + } + return *h.TitleAlign +} + +// GetOkTitleAlign returns a tuple with the TitleAlign field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (h *HostMapWidget) GetTitleAlignOk() (string, bool) { + if h == nil || h.TitleAlign == nil { + return "", false + } + return *h.TitleAlign, true +} + +// HasTitleAlign returns a boolean if a field has been set. +func (h *HostMapWidget) HasTitleAlign() bool { + if h != nil && h.TitleAlign != nil { + return true + } + + return false +} + +// SetTitleAlign allocates a new h.TitleAlign and returns the pointer to it. +func (h *HostMapWidget) SetTitleAlign(v string) { + h.TitleAlign = &v +} + +// GetTitleSize returns the TitleSize field if non-nil, zero value otherwise. +func (h *HostMapWidget) GetTitleSize() int { + if h == nil || h.TitleSize == nil { + return 0 + } + return *h.TitleSize +} + +// GetOkTitleSize returns a tuple with the TitleSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (h *HostMapWidget) GetTitleSizeOk() (int, bool) { + if h == nil || h.TitleSize == nil { + return 0, false + } + return *h.TitleSize, true +} + +// HasTitleSize returns a boolean if a field has been set. +func (h *HostMapWidget) HasTitleSize() bool { + if h != nil && h.TitleSize != nil { + return true + } + + return false +} + +// SetTitleSize allocates a new h.TitleSize and returns the pointer to it. +func (h *HostMapWidget) SetTitleSize(v int) { + h.TitleSize = &v +} + +// GetTitleText returns the TitleText field if non-nil, zero value otherwise. +func (h *HostMapWidget) GetTitleText() string { + if h == nil || h.TitleText == nil { + return "" + } + return *h.TitleText +} + +// GetOkTitleText returns a tuple with the TitleText field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (h *HostMapWidget) GetTitleTextOk() (string, bool) { + if h == nil || h.TitleText == nil { + return "", false + } + return *h.TitleText, true +} + +// HasTitleText returns a boolean if a field has been set. +func (h *HostMapWidget) HasTitleText() bool { + if h != nil && h.TitleText != nil { + return true + } + + return false +} + +// SetTitleText allocates a new h.TitleText and returns the pointer to it. +func (h *HostMapWidget) SetTitleText(v string) { + h.TitleText = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (h *HostMapWidget) GetType() string { + if h == nil || h.Type == nil { + return "" + } + return *h.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (h *HostMapWidget) GetTypeOk() (string, bool) { + if h == nil || h.Type == nil { + return "", false + } + return *h.Type, true +} + +// HasType returns a boolean if a field has been set. +func (h *HostMapWidget) HasType() bool { + if h != nil && h.Type != nil { + return true + } + + return false +} + +// SetType allocates a new h.Type and returns the pointer to it. +func (h *HostMapWidget) SetType(v string) { + h.Type = &v +} + +// GetWidth returns the Width field if non-nil, zero value otherwise. +func (h *HostMapWidget) GetWidth() int { + if h == nil || h.Width == nil { + return 0 + } + return *h.Width +} + +// GetOkWidth returns a tuple with the Width field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (h *HostMapWidget) GetWidthOk() (int, bool) { + if h == nil || h.Width == nil { + return 0, false + } + return *h.Width, true +} + +// HasWidth returns a boolean if a field has been set. +func (h *HostMapWidget) HasWidth() bool { + if h != nil && h.Width != nil { + return true + } + + return false +} + +// SetWidth allocates a new h.Width and returns the pointer to it. +func (h *HostMapWidget) SetWidth(v int) { + h.Width = &v +} + +// GetX returns the X field if non-nil, zero value otherwise. +func (h *HostMapWidget) GetX() int { + if h == nil || h.X == nil { + return 0 + } + return *h.X +} + +// GetOkX returns a tuple with the X field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (h *HostMapWidget) GetXOk() (int, bool) { + if h == nil || h.X == nil { + return 0, false + } + return *h.X, true +} + +// HasX returns a boolean if a field has been set. +func (h *HostMapWidget) HasX() bool { + if h != nil && h.X != nil { + return true + } + + return false +} + +// SetX allocates a new h.X and returns the pointer to it. +func (h *HostMapWidget) SetX(v int) { + h.X = &v +} + +// GetY returns the Y field if non-nil, zero value otherwise. +func (h *HostMapWidget) GetY() int { + if h == nil || h.Y == nil { + return 0 + } + return *h.Y +} + +// GetOkY returns a tuple with the Y field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (h *HostMapWidget) GetYOk() (int, bool) { + if h == nil || h.Y == nil { + return 0, false + } + return *h.Y, true +} + +// HasY returns a boolean if a field has been set. +func (h *HostMapWidget) HasY() bool { + if h != nil && h.Y != nil { + return true + } + + return false +} + +// SetY allocates a new h.Y and returns the pointer to it. +func (h *HostMapWidget) SetY(v int) { + h.Y = &v +} + +// GetHeight returns the Height field if non-nil, zero value otherwise. +func (i *IFrameWidget) GetHeight() int { + if i == nil || i.Height == nil { + return 0 + } + return *i.Height +} + +// GetOkHeight returns a tuple with the Height field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *IFrameWidget) GetHeightOk() (int, bool) { + if i == nil || i.Height == nil { + return 0, false + } + return *i.Height, true +} + +// HasHeight returns a boolean if a field has been set. +func (i *IFrameWidget) HasHeight() bool { + if i != nil && i.Height != nil { + return true + } + + return false +} + +// SetHeight allocates a new i.Height and returns the pointer to it. +func (i *IFrameWidget) SetHeight(v int) { + i.Height = &v +} + +// GetTitle returns the Title field if non-nil, zero value otherwise. +func (i *IFrameWidget) GetTitle() bool { + if i == nil || i.Title == nil { + return false + } + return *i.Title +} + +// GetOkTitle returns a tuple with the Title field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *IFrameWidget) GetTitleOk() (bool, bool) { + if i == nil || i.Title == nil { + return false, false + } + return *i.Title, true +} + +// HasTitle returns a boolean if a field has been set. +func (i *IFrameWidget) HasTitle() bool { + if i != nil && i.Title != nil { + return true + } + + return false +} + +// SetTitle allocates a new i.Title and returns the pointer to it. +func (i *IFrameWidget) SetTitle(v bool) { + i.Title = &v +} + +// GetTitleAlign returns the TitleAlign field if non-nil, zero value otherwise. +func (i *IFrameWidget) GetTitleAlign() string { + if i == nil || i.TitleAlign == nil { + return "" + } + return *i.TitleAlign +} + +// GetOkTitleAlign returns a tuple with the TitleAlign field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *IFrameWidget) GetTitleAlignOk() (string, bool) { + if i == nil || i.TitleAlign == nil { + return "", false + } + return *i.TitleAlign, true +} + +// HasTitleAlign returns a boolean if a field has been set. +func (i *IFrameWidget) HasTitleAlign() bool { + if i != nil && i.TitleAlign != nil { + return true + } + + return false +} + +// SetTitleAlign allocates a new i.TitleAlign and returns the pointer to it. +func (i *IFrameWidget) SetTitleAlign(v string) { + i.TitleAlign = &v +} + +// GetTitleSize returns the TitleSize field if non-nil, zero value otherwise. +func (i *IFrameWidget) GetTitleSize() int { + if i == nil || i.TitleSize == nil { + return 0 + } + return *i.TitleSize +} + +// GetOkTitleSize returns a tuple with the TitleSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *IFrameWidget) GetTitleSizeOk() (int, bool) { + if i == nil || i.TitleSize == nil { + return 0, false + } + return *i.TitleSize, true +} + +// HasTitleSize returns a boolean if a field has been set. +func (i *IFrameWidget) HasTitleSize() bool { + if i != nil && i.TitleSize != nil { + return true + } + + return false +} + +// SetTitleSize allocates a new i.TitleSize and returns the pointer to it. +func (i *IFrameWidget) SetTitleSize(v int) { + i.TitleSize = &v +} + +// GetTitleText returns the TitleText field if non-nil, zero value otherwise. +func (i *IFrameWidget) GetTitleText() string { + if i == nil || i.TitleText == nil { + return "" + } + return *i.TitleText +} + +// GetOkTitleText returns a tuple with the TitleText field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *IFrameWidget) GetTitleTextOk() (string, bool) { + if i == nil || i.TitleText == nil { + return "", false + } + return *i.TitleText, true +} + +// HasTitleText returns a boolean if a field has been set. +func (i *IFrameWidget) HasTitleText() bool { + if i != nil && i.TitleText != nil { + return true + } + + return false +} + +// SetTitleText allocates a new i.TitleText and returns the pointer to it. +func (i *IFrameWidget) SetTitleText(v string) { + i.TitleText = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (i *IFrameWidget) GetType() string { + if i == nil || i.Type == nil { + return "" + } + return *i.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *IFrameWidget) GetTypeOk() (string, bool) { + if i == nil || i.Type == nil { + return "", false + } + return *i.Type, true +} + +// HasType returns a boolean if a field has been set. +func (i *IFrameWidget) HasType() bool { + if i != nil && i.Type != nil { + return true + } + + return false +} + +// SetType allocates a new i.Type and returns the pointer to it. +func (i *IFrameWidget) SetType(v string) { + i.Type = &v +} + +// GetUrl returns the Url field if non-nil, zero value otherwise. +func (i *IFrameWidget) GetUrl() string { + if i == nil || i.Url == nil { + return "" + } + return *i.Url +} + +// GetOkUrl returns a tuple with the Url field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *IFrameWidget) GetUrlOk() (string, bool) { + if i == nil || i.Url == nil { + return "", false + } + return *i.Url, true +} + +// HasUrl returns a boolean if a field has been set. +func (i *IFrameWidget) HasUrl() bool { + if i != nil && i.Url != nil { + return true + } + + return false +} + +// SetUrl allocates a new i.Url and returns the pointer to it. +func (i *IFrameWidget) SetUrl(v string) { + i.Url = &v +} + +// GetWidth returns the Width field if non-nil, zero value otherwise. +func (i *IFrameWidget) GetWidth() int { + if i == nil || i.Width == nil { + return 0 + } + return *i.Width +} + +// GetOkWidth returns a tuple with the Width field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *IFrameWidget) GetWidthOk() (int, bool) { + if i == nil || i.Width == nil { + return 0, false + } + return *i.Width, true +} + +// HasWidth returns a boolean if a field has been set. +func (i *IFrameWidget) HasWidth() bool { + if i != nil && i.Width != nil { + return true + } + + return false +} + +// SetWidth allocates a new i.Width and returns the pointer to it. +func (i *IFrameWidget) SetWidth(v int) { + i.Width = &v +} + +// GetX returns the X field if non-nil, zero value otherwise. +func (i *IFrameWidget) GetX() int { + if i == nil || i.X == nil { + return 0 + } + return *i.X +} + +// GetOkX returns a tuple with the X field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *IFrameWidget) GetXOk() (int, bool) { + if i == nil || i.X == nil { + return 0, false + } + return *i.X, true +} + +// HasX returns a boolean if a field has been set. +func (i *IFrameWidget) HasX() bool { + if i != nil && i.X != nil { + return true + } + + return false +} + +// SetX allocates a new i.X and returns the pointer to it. +func (i *IFrameWidget) SetX(v int) { + i.X = &v +} + +// GetY returns the Y field if non-nil, zero value otherwise. +func (i *IFrameWidget) GetY() int { + if i == nil || i.Y == nil { + return 0 + } + return *i.Y +} + +// GetOkY returns a tuple with the Y field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *IFrameWidget) GetYOk() (int, bool) { + if i == nil || i.Y == nil { + return 0, false + } + return *i.Y, true +} + +// HasY returns a boolean if a field has been set. +func (i *IFrameWidget) HasY() bool { + if i != nil && i.Y != nil { + return true + } + + return false +} + +// SetY allocates a new i.Y and returns the pointer to it. +func (i *IFrameWidget) SetY(v int) { + i.Y = &v +} + +// GetHeight returns the Height field if non-nil, zero value otherwise. +func (i *ImageWidget) GetHeight() int { + if i == nil || i.Height == nil { + return 0 + } + return *i.Height +} + +// GetOkHeight returns a tuple with the Height field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *ImageWidget) GetHeightOk() (int, bool) { + if i == nil || i.Height == nil { + return 0, false + } + return *i.Height, true +} + +// HasHeight returns a boolean if a field has been set. +func (i *ImageWidget) HasHeight() bool { + if i != nil && i.Height != nil { + return true + } + + return false +} + +// SetHeight allocates a new i.Height and returns the pointer to it. +func (i *ImageWidget) SetHeight(v int) { + i.Height = &v +} + +// GetSizing returns the Sizing field if non-nil, zero value otherwise. +func (i *ImageWidget) GetSizing() string { + if i == nil || i.Sizing == nil { + return "" + } + return *i.Sizing +} + +// GetOkSizing returns a tuple with the Sizing field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *ImageWidget) GetSizingOk() (string, bool) { + if i == nil || i.Sizing == nil { + return "", false + } + return *i.Sizing, true +} + +// HasSizing returns a boolean if a field has been set. +func (i *ImageWidget) HasSizing() bool { + if i != nil && i.Sizing != nil { + return true + } + + return false +} + +// SetSizing allocates a new i.Sizing and returns the pointer to it. +func (i *ImageWidget) SetSizing(v string) { + i.Sizing = &v +} + +// GetTitle returns the Title field if non-nil, zero value otherwise. +func (i *ImageWidget) GetTitle() bool { + if i == nil || i.Title == nil { + return false + } + return *i.Title +} + +// GetOkTitle returns a tuple with the Title field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *ImageWidget) GetTitleOk() (bool, bool) { + if i == nil || i.Title == nil { + return false, false + } + return *i.Title, true +} + +// HasTitle returns a boolean if a field has been set. +func (i *ImageWidget) HasTitle() bool { + if i != nil && i.Title != nil { + return true + } + + return false +} + +// SetTitle allocates a new i.Title and returns the pointer to it. +func (i *ImageWidget) SetTitle(v bool) { + i.Title = &v +} + +// GetTitleAlign returns the TitleAlign field if non-nil, zero value otherwise. +func (i *ImageWidget) GetTitleAlign() string { + if i == nil || i.TitleAlign == nil { + return "" + } + return *i.TitleAlign +} + +// GetOkTitleAlign returns a tuple with the TitleAlign field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *ImageWidget) GetTitleAlignOk() (string, bool) { + if i == nil || i.TitleAlign == nil { + return "", false + } + return *i.TitleAlign, true +} + +// HasTitleAlign returns a boolean if a field has been set. +func (i *ImageWidget) HasTitleAlign() bool { + if i != nil && i.TitleAlign != nil { + return true + } + + return false +} + +// SetTitleAlign allocates a new i.TitleAlign and returns the pointer to it. +func (i *ImageWidget) SetTitleAlign(v string) { + i.TitleAlign = &v +} + +// GetTitleSize returns the TitleSize field if non-nil, zero value otherwise. +func (i *ImageWidget) GetTitleSize() TextSize { + if i == nil || i.TitleSize == nil { + return TextSize{} + } + return *i.TitleSize +} + +// GetOkTitleSize returns a tuple with the TitleSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *ImageWidget) GetTitleSizeOk() (TextSize, bool) { + if i == nil || i.TitleSize == nil { + return TextSize{}, false + } + return *i.TitleSize, true +} + +// HasTitleSize returns a boolean if a field has been set. +func (i *ImageWidget) HasTitleSize() bool { + if i != nil && i.TitleSize != nil { + return true + } + + return false +} + +// SetTitleSize allocates a new i.TitleSize and returns the pointer to it. +func (i *ImageWidget) SetTitleSize(v TextSize) { + i.TitleSize = &v +} + +// GetTitleText returns the TitleText field if non-nil, zero value otherwise. +func (i *ImageWidget) GetTitleText() string { + if i == nil || i.TitleText == nil { + return "" + } + return *i.TitleText +} + +// GetOkTitleText returns a tuple with the TitleText field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *ImageWidget) GetTitleTextOk() (string, bool) { + if i == nil || i.TitleText == nil { + return "", false + } + return *i.TitleText, true +} + +// HasTitleText returns a boolean if a field has been set. +func (i *ImageWidget) HasTitleText() bool { + if i != nil && i.TitleText != nil { + return true + } + + return false +} + +// SetTitleText allocates a new i.TitleText and returns the pointer to it. +func (i *ImageWidget) SetTitleText(v string) { + i.TitleText = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (i *ImageWidget) GetType() string { + if i == nil || i.Type == nil { + return "" + } + return *i.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *ImageWidget) GetTypeOk() (string, bool) { + if i == nil || i.Type == nil { + return "", false + } + return *i.Type, true +} + +// HasType returns a boolean if a field has been set. +func (i *ImageWidget) HasType() bool { + if i != nil && i.Type != nil { + return true + } + + return false +} + +// SetType allocates a new i.Type and returns the pointer to it. +func (i *ImageWidget) SetType(v string) { + i.Type = &v +} + +// GetUrl returns the Url field if non-nil, zero value otherwise. +func (i *ImageWidget) GetUrl() string { + if i == nil || i.Url == nil { + return "" + } + return *i.Url +} + +// GetOkUrl returns a tuple with the Url field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *ImageWidget) GetUrlOk() (string, bool) { + if i == nil || i.Url == nil { + return "", false + } + return *i.Url, true +} + +// HasUrl returns a boolean if a field has been set. +func (i *ImageWidget) HasUrl() bool { + if i != nil && i.Url != nil { + return true + } + + return false +} + +// SetUrl allocates a new i.Url and returns the pointer to it. +func (i *ImageWidget) SetUrl(v string) { + i.Url = &v +} + +// GetWidth returns the Width field if non-nil, zero value otherwise. +func (i *ImageWidget) GetWidth() int { + if i == nil || i.Width == nil { + return 0 + } + return *i.Width +} + +// GetOkWidth returns a tuple with the Width field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *ImageWidget) GetWidthOk() (int, bool) { + if i == nil || i.Width == nil { + return 0, false + } + return *i.Width, true +} + +// HasWidth returns a boolean if a field has been set. +func (i *ImageWidget) HasWidth() bool { + if i != nil && i.Width != nil { + return true + } + + return false +} + +// SetWidth allocates a new i.Width and returns the pointer to it. +func (i *ImageWidget) SetWidth(v int) { + i.Width = &v +} + +// GetX returns the X field if non-nil, zero value otherwise. +func (i *ImageWidget) GetX() int { + if i == nil || i.X == nil { + return 0 + } + return *i.X +} + +// GetOkX returns a tuple with the X field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *ImageWidget) GetXOk() (int, bool) { + if i == nil || i.X == nil { + return 0, false + } + return *i.X, true +} + +// HasX returns a boolean if a field has been set. +func (i *ImageWidget) HasX() bool { + if i != nil && i.X != nil { + return true + } + + return false +} + +// SetX allocates a new i.X and returns the pointer to it. +func (i *ImageWidget) SetX(v int) { + i.X = &v +} + +// GetY returns the Y field if non-nil, zero value otherwise. +func (i *ImageWidget) GetY() int { + if i == nil || i.Y == nil { + return 0 + } + return *i.Y +} + +// GetOkY returns a tuple with the Y field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *ImageWidget) GetYOk() (int, bool) { + if i == nil || i.Y == nil { + return 0, false + } + return *i.Y, true +} + +// HasY returns a boolean if a field has been set. +func (i *ImageWidget) HasY() bool { + if i != nil && i.Y != nil { + return true + } + + return false +} + +// SetY allocates a new i.Y and returns the pointer to it. +func (i *ImageWidget) SetY(v int) { + i.Y = &v +} + +// GetAccountID returns the AccountID field if non-nil, zero value otherwise. +func (i *IntegrationAWSAccount) GetAccountID() string { + if i == nil || i.AccountID == nil { + return "" + } + return *i.AccountID +} + +// GetOkAccountID returns a tuple with the AccountID field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *IntegrationAWSAccount) GetAccountIDOk() (string, bool) { + if i == nil || i.AccountID == nil { + return "", false + } + return *i.AccountID, true +} + +// HasAccountID returns a boolean if a field has been set. +func (i *IntegrationAWSAccount) HasAccountID() bool { + if i != nil && i.AccountID != nil { + return true + } + + return false +} + +// SetAccountID allocates a new i.AccountID and returns the pointer to it. +func (i *IntegrationAWSAccount) SetAccountID(v string) { + i.AccountID = &v +} + +// GetRoleName returns the RoleName field if non-nil, zero value otherwise. +func (i *IntegrationAWSAccount) GetRoleName() string { + if i == nil || i.RoleName == nil { + return "" + } + return *i.RoleName +} + +// GetOkRoleName returns a tuple with the RoleName field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *IntegrationAWSAccount) GetRoleNameOk() (string, bool) { + if i == nil || i.RoleName == nil { + return "", false + } + return *i.RoleName, true +} + +// HasRoleName returns a boolean if a field has been set. +func (i *IntegrationAWSAccount) HasRoleName() bool { + if i != nil && i.RoleName != nil { + return true + } + + return false +} + +// SetRoleName allocates a new i.RoleName and returns the pointer to it. +func (i *IntegrationAWSAccount) SetRoleName(v string) { + i.RoleName = &v +} + +// GetAccountID returns the AccountID field if non-nil, zero value otherwise. +func (i *IntegrationAWSAccountDeleteRequest) GetAccountID() string { + if i == nil || i.AccountID == nil { + return "" + } + return *i.AccountID +} + +// GetOkAccountID returns a tuple with the AccountID field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *IntegrationAWSAccountDeleteRequest) GetAccountIDOk() (string, bool) { + if i == nil || i.AccountID == nil { + return "", false + } + return *i.AccountID, true +} + +// HasAccountID returns a boolean if a field has been set. +func (i *IntegrationAWSAccountDeleteRequest) HasAccountID() bool { + if i != nil && i.AccountID != nil { + return true + } + + return false +} + +// SetAccountID allocates a new i.AccountID and returns the pointer to it. +func (i *IntegrationAWSAccountDeleteRequest) SetAccountID(v string) { + i.AccountID = &v +} + +// GetRoleName returns the RoleName field if non-nil, zero value otherwise. +func (i *IntegrationAWSAccountDeleteRequest) GetRoleName() string { + if i == nil || i.RoleName == nil { + return "" + } + return *i.RoleName +} + +// GetOkRoleName returns a tuple with the RoleName field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *IntegrationAWSAccountDeleteRequest) GetRoleNameOk() (string, bool) { + if i == nil || i.RoleName == nil { + return "", false + } + return *i.RoleName, true +} + +// HasRoleName returns a boolean if a field has been set. +func (i *IntegrationAWSAccountDeleteRequest) HasRoleName() bool { + if i != nil && i.RoleName != nil { + return true + } + + return false +} + +// SetRoleName allocates a new i.RoleName and returns the pointer to it. +func (i *IntegrationAWSAccountDeleteRequest) SetRoleName(v string) { + i.RoleName = &v +} + +// GetAPIToken returns the APIToken field if non-nil, zero value otherwise. +func (i *integrationPD) GetAPIToken() string { + if i == nil || i.APIToken == nil { + return "" + } + return *i.APIToken +} + +// GetOkAPIToken returns a tuple with the APIToken field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *integrationPD) GetAPITokenOk() (string, bool) { + if i == nil || i.APIToken == nil { + return "", false + } + return *i.APIToken, true +} + +// HasAPIToken returns a boolean if a field has been set. +func (i *integrationPD) HasAPIToken() bool { + if i != nil && i.APIToken != nil { + return true + } + + return false +} + +// SetAPIToken allocates a new i.APIToken and returns the pointer to it. +func (i *integrationPD) SetAPIToken(v string) { + i.APIToken = &v +} + +// GetSubdomain returns the Subdomain field if non-nil, zero value otherwise. +func (i *integrationPD) GetSubdomain() string { + if i == nil || i.Subdomain == nil { + return "" + } + return *i.Subdomain +} + +// GetOkSubdomain returns a tuple with the Subdomain field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *integrationPD) GetSubdomainOk() (string, bool) { + if i == nil || i.Subdomain == nil { + return "", false + } + return *i.Subdomain, true +} + +// HasSubdomain returns a boolean if a field has been set. +func (i *integrationPD) HasSubdomain() bool { + if i != nil && i.Subdomain != nil { + return true + } + + return false +} + +// SetSubdomain allocates a new i.Subdomain and returns the pointer to it. +func (i *integrationPD) SetSubdomain(v string) { + i.Subdomain = &v +} + +// GetAPIToken returns the APIToken field if non-nil, zero value otherwise. +func (i *IntegrationPDRequest) GetAPIToken() string { + if i == nil || i.APIToken == nil { + return "" + } + return *i.APIToken +} + +// GetOkAPIToken returns a tuple with the APIToken field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *IntegrationPDRequest) GetAPITokenOk() (string, bool) { + if i == nil || i.APIToken == nil { + return "", false + } + return *i.APIToken, true +} + +// HasAPIToken returns a boolean if a field has been set. +func (i *IntegrationPDRequest) HasAPIToken() bool { + if i != nil && i.APIToken != nil { + return true + } + + return false +} + +// SetAPIToken allocates a new i.APIToken and returns the pointer to it. +func (i *IntegrationPDRequest) SetAPIToken(v string) { + i.APIToken = &v +} + +// GetRunCheck returns the RunCheck field if non-nil, zero value otherwise. +func (i *IntegrationPDRequest) GetRunCheck() bool { + if i == nil || i.RunCheck == nil { + return false + } + return *i.RunCheck +} + +// GetOkRunCheck returns a tuple with the RunCheck field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *IntegrationPDRequest) GetRunCheckOk() (bool, bool) { + if i == nil || i.RunCheck == nil { + return false, false + } + return *i.RunCheck, true +} + +// HasRunCheck returns a boolean if a field has been set. +func (i *IntegrationPDRequest) HasRunCheck() bool { + if i != nil && i.RunCheck != nil { + return true + } + + return false +} + +// SetRunCheck allocates a new i.RunCheck and returns the pointer to it. +func (i *IntegrationPDRequest) SetRunCheck(v bool) { + i.RunCheck = &v +} + +// GetSubdomain returns the Subdomain field if non-nil, zero value otherwise. +func (i *IntegrationPDRequest) GetSubdomain() string { + if i == nil || i.Subdomain == nil { + return "" + } + return *i.Subdomain +} + +// GetOkSubdomain returns a tuple with the Subdomain field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *IntegrationPDRequest) GetSubdomainOk() (string, bool) { + if i == nil || i.Subdomain == nil { + return "", false + } + return *i.Subdomain, true +} + +// HasSubdomain returns a boolean if a field has been set. +func (i *IntegrationPDRequest) HasSubdomain() bool { + if i != nil && i.Subdomain != nil { + return true + } + + return false +} + +// SetSubdomain allocates a new i.Subdomain and returns the pointer to it. +func (i *IntegrationPDRequest) SetSubdomain(v string) { + i.Subdomain = &v +} + +// GetRunCheck returns the RunCheck field if non-nil, zero value otherwise. +func (i *IntegrationSlackRequest) GetRunCheck() bool { + if i == nil || i.RunCheck == nil { + return false + } + return *i.RunCheck +} + +// GetOkRunCheck returns a tuple with the RunCheck field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (i *IntegrationSlackRequest) GetRunCheckOk() (bool, bool) { + if i == nil || i.RunCheck == nil { + return false, false + } + return *i.RunCheck, true +} + +// HasRunCheck returns a boolean if a field has been set. +func (i *IntegrationSlackRequest) HasRunCheck() bool { + if i != nil && i.RunCheck != nil { + return true + } + + return false +} + +// SetRunCheck allocates a new i.RunCheck and returns the pointer to it. +func (i *IntegrationSlackRequest) SetRunCheck(v bool) { + i.RunCheck = &v +} + +// GetHost returns the Host field if non-nil, zero value otherwise. +func (m *Metric) GetHost() string { + if m == nil || m.Host == nil { + return "" + } + return *m.Host +} + +// GetOkHost returns a tuple with the Host field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (m *Metric) GetHostOk() (string, bool) { + if m == nil || m.Host == nil { + return "", false + } + return *m.Host, true +} + +// HasHost returns a boolean if a field has been set. +func (m *Metric) HasHost() bool { + if m != nil && m.Host != nil { + return true + } + + return false +} + +// SetHost allocates a new m.Host and returns the pointer to it. +func (m *Metric) SetHost(v string) { + m.Host = &v +} + +// GetMetric returns the Metric field if non-nil, zero value otherwise. +func (m *Metric) GetMetric() string { + if m == nil || m.Metric == nil { + return "" + } + return *m.Metric +} + +// GetOkMetric returns a tuple with the Metric field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (m *Metric) GetMetricOk() (string, bool) { + if m == nil || m.Metric == nil { + return "", false + } + return *m.Metric, true +} + +// HasMetric returns a boolean if a field has been set. +func (m *Metric) HasMetric() bool { + if m != nil && m.Metric != nil { + return true + } + + return false +} + +// SetMetric allocates a new m.Metric and returns the pointer to it. +func (m *Metric) SetMetric(v string) { + m.Metric = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (m *Metric) GetType() string { + if m == nil || m.Type == nil { + return "" + } + return *m.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (m *Metric) GetTypeOk() (string, bool) { + if m == nil || m.Type == nil { + return "", false + } + return *m.Type, true +} + +// HasType returns a boolean if a field has been set. +func (m *Metric) HasType() bool { + if m != nil && m.Type != nil { + return true + } + + return false +} + +// SetType allocates a new m.Type and returns the pointer to it. +func (m *Metric) SetType(v string) { + m.Type = &v +} + +// GetUnit returns the Unit field if non-nil, zero value otherwise. +func (m *Metric) GetUnit() string { + if m == nil || m.Unit == nil { + return "" + } + return *m.Unit +} + +// GetOkUnit returns a tuple with the Unit field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (m *Metric) GetUnitOk() (string, bool) { + if m == nil || m.Unit == nil { + return "", false + } + return *m.Unit, true +} + +// HasUnit returns a boolean if a field has been set. +func (m *Metric) HasUnit() bool { + if m != nil && m.Unit != nil { + return true + } + + return false +} + +// SetUnit allocates a new m.Unit and returns the pointer to it. +func (m *Metric) SetUnit(v string) { + m.Unit = &v +} + +// GetDescription returns the Description field if non-nil, zero value otherwise. +func (m *MetricMetadata) GetDescription() string { + if m == nil || m.Description == nil { + return "" + } + return *m.Description +} + +// GetOkDescription returns a tuple with the Description field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (m *MetricMetadata) GetDescriptionOk() (string, bool) { + if m == nil || m.Description == nil { + return "", false + } + return *m.Description, true +} + +// HasDescription returns a boolean if a field has been set. +func (m *MetricMetadata) HasDescription() bool { + if m != nil && m.Description != nil { + return true + } + + return false +} + +// SetDescription allocates a new m.Description and returns the pointer to it. +func (m *MetricMetadata) SetDescription(v string) { + m.Description = &v +} + +// GetPerUnit returns the PerUnit field if non-nil, zero value otherwise. +func (m *MetricMetadata) GetPerUnit() string { + if m == nil || m.PerUnit == nil { + return "" + } + return *m.PerUnit +} + +// GetOkPerUnit returns a tuple with the PerUnit field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (m *MetricMetadata) GetPerUnitOk() (string, bool) { + if m == nil || m.PerUnit == nil { + return "", false + } + return *m.PerUnit, true +} + +// HasPerUnit returns a boolean if a field has been set. +func (m *MetricMetadata) HasPerUnit() bool { + if m != nil && m.PerUnit != nil { + return true + } + + return false +} + +// SetPerUnit allocates a new m.PerUnit and returns the pointer to it. +func (m *MetricMetadata) SetPerUnit(v string) { + m.PerUnit = &v +} + +// GetShortName returns the ShortName field if non-nil, zero value otherwise. +func (m *MetricMetadata) GetShortName() string { + if m == nil || m.ShortName == nil { + return "" + } + return *m.ShortName +} + +// GetOkShortName returns a tuple with the ShortName field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (m *MetricMetadata) GetShortNameOk() (string, bool) { + if m == nil || m.ShortName == nil { + return "", false + } + return *m.ShortName, true +} + +// HasShortName returns a boolean if a field has been set. +func (m *MetricMetadata) HasShortName() bool { + if m != nil && m.ShortName != nil { + return true + } + + return false +} + +// SetShortName allocates a new m.ShortName and returns the pointer to it. +func (m *MetricMetadata) SetShortName(v string) { + m.ShortName = &v +} + +// GetStatsdInterval returns the StatsdInterval field if non-nil, zero value otherwise. +func (m *MetricMetadata) GetStatsdInterval() int { + if m == nil || m.StatsdInterval == nil { + return 0 + } + return *m.StatsdInterval +} + +// GetOkStatsdInterval returns a tuple with the StatsdInterval field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (m *MetricMetadata) GetStatsdIntervalOk() (int, bool) { + if m == nil || m.StatsdInterval == nil { + return 0, false + } + return *m.StatsdInterval, true +} + +// HasStatsdInterval returns a boolean if a field has been set. +func (m *MetricMetadata) HasStatsdInterval() bool { + if m != nil && m.StatsdInterval != nil { + return true + } + + return false +} + +// SetStatsdInterval allocates a new m.StatsdInterval and returns the pointer to it. +func (m *MetricMetadata) SetStatsdInterval(v int) { + m.StatsdInterval = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (m *MetricMetadata) GetType() string { + if m == nil || m.Type == nil { + return "" + } + return *m.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (m *MetricMetadata) GetTypeOk() (string, bool) { + if m == nil || m.Type == nil { + return "", false + } + return *m.Type, true +} + +// HasType returns a boolean if a field has been set. +func (m *MetricMetadata) HasType() bool { + if m != nil && m.Type != nil { + return true + } + + return false +} + +// SetType allocates a new m.Type and returns the pointer to it. +func (m *MetricMetadata) SetType(v string) { + m.Type = &v +} + +// GetUnit returns the Unit field if non-nil, zero value otherwise. +func (m *MetricMetadata) GetUnit() string { + if m == nil || m.Unit == nil { + return "" + } + return *m.Unit +} + +// GetOkUnit returns a tuple with the Unit field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (m *MetricMetadata) GetUnitOk() (string, bool) { + if m == nil || m.Unit == nil { + return "", false + } + return *m.Unit, true +} + +// HasUnit returns a boolean if a field has been set. +func (m *MetricMetadata) HasUnit() bool { + if m != nil && m.Unit != nil { + return true + } + + return false +} + +// SetUnit allocates a new m.Unit and returns the pointer to it. +func (m *MetricMetadata) SetUnit(v string) { + m.Unit = &v +} + +// GetCreator returns the Creator field if non-nil, zero value otherwise. +func (m *Monitor) GetCreator() Creator { + if m == nil || m.Creator == nil { + return Creator{} + } + return *m.Creator +} + +// GetOkCreator returns a tuple with the Creator field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (m *Monitor) GetCreatorOk() (Creator, bool) { + if m == nil || m.Creator == nil { + return Creator{}, false + } + return *m.Creator, true +} + +// HasCreator returns a boolean if a field has been set. +func (m *Monitor) HasCreator() bool { + if m != nil && m.Creator != nil { + return true + } + + return false +} + +// SetCreator allocates a new m.Creator and returns the pointer to it. +func (m *Monitor) SetCreator(v Creator) { + m.Creator = &v +} + +// GetId returns the Id field if non-nil, zero value otherwise. +func (m *Monitor) GetId() int { + if m == nil || m.Id == nil { + return 0 + } + return *m.Id +} + +// GetOkId returns a tuple with the Id field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (m *Monitor) GetIdOk() (int, bool) { + if m == nil || m.Id == nil { + return 0, false + } + return *m.Id, true +} + +// HasId returns a boolean if a field has been set. +func (m *Monitor) HasId() bool { + if m != nil && m.Id != nil { + return true + } + + return false +} + +// SetId allocates a new m.Id and returns the pointer to it. +func (m *Monitor) SetId(v int) { + m.Id = &v +} + +// GetMessage returns the Message field if non-nil, zero value otherwise. +func (m *Monitor) GetMessage() string { + if m == nil || m.Message == nil { + return "" + } + return *m.Message +} + +// GetOkMessage returns a tuple with the Message field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (m *Monitor) GetMessageOk() (string, bool) { + if m == nil || m.Message == nil { + return "", false + } + return *m.Message, true +} + +// HasMessage returns a boolean if a field has been set. +func (m *Monitor) HasMessage() bool { + if m != nil && m.Message != nil { + return true + } + + return false +} + +// SetMessage allocates a new m.Message and returns the pointer to it. +func (m *Monitor) SetMessage(v string) { + m.Message = &v +} + +// GetName returns the Name field if non-nil, zero value otherwise. +func (m *Monitor) GetName() string { + if m == nil || m.Name == nil { + return "" + } + return *m.Name +} + +// GetOkName returns a tuple with the Name field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (m *Monitor) GetNameOk() (string, bool) { + if m == nil || m.Name == nil { + return "", false + } + return *m.Name, true +} + +// HasName returns a boolean if a field has been set. +func (m *Monitor) HasName() bool { + if m != nil && m.Name != nil { + return true + } + + return false +} + +// SetName allocates a new m.Name and returns the pointer to it. +func (m *Monitor) SetName(v string) { + m.Name = &v +} + +// GetOptions returns the Options field if non-nil, zero value otherwise. +func (m *Monitor) GetOptions() Options { + if m == nil || m.Options == nil { + return Options{} + } + return *m.Options +} + +// GetOkOptions returns a tuple with the Options field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (m *Monitor) GetOptionsOk() (Options, bool) { + if m == nil || m.Options == nil { + return Options{}, false + } + return *m.Options, true +} + +// HasOptions returns a boolean if a field has been set. +func (m *Monitor) HasOptions() bool { + if m != nil && m.Options != nil { + return true + } + + return false +} + +// SetOptions allocates a new m.Options and returns the pointer to it. +func (m *Monitor) SetOptions(v Options) { + m.Options = &v +} + +// GetOverallState returns the OverallState field if non-nil, zero value otherwise. +func (m *Monitor) GetOverallState() string { + if m == nil || m.OverallState == nil { + return "" + } + return *m.OverallState +} + +// GetOkOverallState returns a tuple with the OverallState field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (m *Monitor) GetOverallStateOk() (string, bool) { + if m == nil || m.OverallState == nil { + return "", false + } + return *m.OverallState, true +} + +// HasOverallState returns a boolean if a field has been set. +func (m *Monitor) HasOverallState() bool { + if m != nil && m.OverallState != nil { + return true + } + + return false +} + +// SetOverallState allocates a new m.OverallState and returns the pointer to it. +func (m *Monitor) SetOverallState(v string) { + m.OverallState = &v +} + +// GetQuery returns the Query field if non-nil, zero value otherwise. +func (m *Monitor) GetQuery() string { + if m == nil || m.Query == nil { + return "" + } + return *m.Query +} + +// GetOkQuery returns a tuple with the Query field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (m *Monitor) GetQueryOk() (string, bool) { + if m == nil || m.Query == nil { + return "", false + } + return *m.Query, true +} + +// HasQuery returns a boolean if a field has been set. +func (m *Monitor) HasQuery() bool { + if m != nil && m.Query != nil { + return true + } + + return false +} + +// SetQuery allocates a new m.Query and returns the pointer to it. +func (m *Monitor) SetQuery(v string) { + m.Query = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (m *Monitor) GetType() string { + if m == nil || m.Type == nil { + return "" + } + return *m.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (m *Monitor) GetTypeOk() (string, bool) { + if m == nil || m.Type == nil { + return "", false + } + return *m.Type, true +} + +// HasType returns a boolean if a field has been set. +func (m *Monitor) HasType() bool { + if m != nil && m.Type != nil { + return true + } + + return false +} + +// SetType allocates a new m.Type and returns the pointer to it. +func (m *Monitor) SetType(v string) { + m.Type = &v +} + +// GetAutoRefresh returns the AutoRefresh field if non-nil, zero value otherwise. +func (n *NoteWidget) GetAutoRefresh() bool { + if n == nil || n.AutoRefresh == nil { + return false + } + return *n.AutoRefresh +} + +// GetOkAutoRefresh returns a tuple with the AutoRefresh field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (n *NoteWidget) GetAutoRefreshOk() (bool, bool) { + if n == nil || n.AutoRefresh == nil { + return false, false + } + return *n.AutoRefresh, true +} + +// HasAutoRefresh returns a boolean if a field has been set. +func (n *NoteWidget) HasAutoRefresh() bool { + if n != nil && n.AutoRefresh != nil { + return true + } + + return false +} + +// SetAutoRefresh allocates a new n.AutoRefresh and returns the pointer to it. +func (n *NoteWidget) SetAutoRefresh(v bool) { + n.AutoRefresh = &v +} + +// GetColor returns the Color field if non-nil, zero value otherwise. +func (n *NoteWidget) GetColor() string { + if n == nil || n.Color == nil { + return "" + } + return *n.Color +} + +// GetOkColor returns a tuple with the Color field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (n *NoteWidget) GetColorOk() (string, bool) { + if n == nil || n.Color == nil { + return "", false + } + return *n.Color, true +} + +// HasColor returns a boolean if a field has been set. +func (n *NoteWidget) HasColor() bool { + if n != nil && n.Color != nil { + return true + } + + return false +} + +// SetColor allocates a new n.Color and returns the pointer to it. +func (n *NoteWidget) SetColor(v string) { + n.Color = &v +} + +// GetFontSize returns the FontSize field if non-nil, zero value otherwise. +func (n *NoteWidget) GetFontSize() int { + if n == nil || n.FontSize == nil { + return 0 + } + return *n.FontSize +} + +// GetOkFontSize returns a tuple with the FontSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (n *NoteWidget) GetFontSizeOk() (int, bool) { + if n == nil || n.FontSize == nil { + return 0, false + } + return *n.FontSize, true +} + +// HasFontSize returns a boolean if a field has been set. +func (n *NoteWidget) HasFontSize() bool { + if n != nil && n.FontSize != nil { + return true + } + + return false +} + +// SetFontSize allocates a new n.FontSize and returns the pointer to it. +func (n *NoteWidget) SetFontSize(v int) { + n.FontSize = &v +} + +// GetHeight returns the Height field if non-nil, zero value otherwise. +func (n *NoteWidget) GetHeight() int { + if n == nil || n.Height == nil { + return 0 + } + return *n.Height +} + +// GetOkHeight returns a tuple with the Height field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (n *NoteWidget) GetHeightOk() (int, bool) { + if n == nil || n.Height == nil { + return 0, false + } + return *n.Height, true +} + +// HasHeight returns a boolean if a field has been set. +func (n *NoteWidget) HasHeight() bool { + if n != nil && n.Height != nil { + return true + } + + return false +} + +// SetHeight allocates a new n.Height and returns the pointer to it. +func (n *NoteWidget) SetHeight(v int) { + n.Height = &v +} + +// GetHtml returns the Html field if non-nil, zero value otherwise. +func (n *NoteWidget) GetHtml() string { + if n == nil || n.Html == nil { + return "" + } + return *n.Html +} + +// GetOkHtml returns a tuple with the Html field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (n *NoteWidget) GetHtmlOk() (string, bool) { + if n == nil || n.Html == nil { + return "", false + } + return *n.Html, true +} + +// HasHtml returns a boolean if a field has been set. +func (n *NoteWidget) HasHtml() bool { + if n != nil && n.Html != nil { + return true + } + + return false +} + +// SetHtml allocates a new n.Html and returns the pointer to it. +func (n *NoteWidget) SetHtml(v string) { + n.Html = &v +} + +// GetNote returns the Note field if non-nil, zero value otherwise. +func (n *NoteWidget) GetNote() string { + if n == nil || n.Note == nil { + return "" + } + return *n.Note +} + +// GetOkNote returns a tuple with the Note field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (n *NoteWidget) GetNoteOk() (string, bool) { + if n == nil || n.Note == nil { + return "", false + } + return *n.Note, true +} + +// HasNote returns a boolean if a field has been set. +func (n *NoteWidget) HasNote() bool { + if n != nil && n.Note != nil { + return true + } + + return false +} + +// SetNote allocates a new n.Note and returns the pointer to it. +func (n *NoteWidget) SetNote(v string) { + n.Note = &v +} + +// GetRefreshEvery returns the RefreshEvery field if non-nil, zero value otherwise. +func (n *NoteWidget) GetRefreshEvery() int { + if n == nil || n.RefreshEvery == nil { + return 0 + } + return *n.RefreshEvery +} + +// GetOkRefreshEvery returns a tuple with the RefreshEvery field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (n *NoteWidget) GetRefreshEveryOk() (int, bool) { + if n == nil || n.RefreshEvery == nil { + return 0, false + } + return *n.RefreshEvery, true +} + +// HasRefreshEvery returns a boolean if a field has been set. +func (n *NoteWidget) HasRefreshEvery() bool { + if n != nil && n.RefreshEvery != nil { + return true + } + + return false +} + +// SetRefreshEvery allocates a new n.RefreshEvery and returns the pointer to it. +func (n *NoteWidget) SetRefreshEvery(v int) { + n.RefreshEvery = &v +} + +// GetTextAlign returns the TextAlign field if non-nil, zero value otherwise. +func (n *NoteWidget) GetTextAlign() string { + if n == nil || n.TextAlign == nil { + return "" + } + return *n.TextAlign +} + +// GetOkTextAlign returns a tuple with the TextAlign field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (n *NoteWidget) GetTextAlignOk() (string, bool) { + if n == nil || n.TextAlign == nil { + return "", false + } + return *n.TextAlign, true +} + +// HasTextAlign returns a boolean if a field has been set. +func (n *NoteWidget) HasTextAlign() bool { + if n != nil && n.TextAlign != nil { + return true + } + + return false +} + +// SetTextAlign allocates a new n.TextAlign and returns the pointer to it. +func (n *NoteWidget) SetTextAlign(v string) { + n.TextAlign = &v +} + +// GetTick returns the Tick field if non-nil, zero value otherwise. +func (n *NoteWidget) GetTick() bool { + if n == nil || n.Tick == nil { + return false + } + return *n.Tick +} + +// GetOkTick returns a tuple with the Tick field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (n *NoteWidget) GetTickOk() (bool, bool) { + if n == nil || n.Tick == nil { + return false, false + } + return *n.Tick, true +} + +// HasTick returns a boolean if a field has been set. +func (n *NoteWidget) HasTick() bool { + if n != nil && n.Tick != nil { + return true + } + + return false +} + +// SetTick allocates a new n.Tick and returns the pointer to it. +func (n *NoteWidget) SetTick(v bool) { + n.Tick = &v +} + +// GetTickEdge returns the TickEdge field if non-nil, zero value otherwise. +func (n *NoteWidget) GetTickEdge() string { + if n == nil || n.TickEdge == nil { + return "" + } + return *n.TickEdge +} + +// GetOkTickEdge returns a tuple with the TickEdge field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (n *NoteWidget) GetTickEdgeOk() (string, bool) { + if n == nil || n.TickEdge == nil { + return "", false + } + return *n.TickEdge, true +} + +// HasTickEdge returns a boolean if a field has been set. +func (n *NoteWidget) HasTickEdge() bool { + if n != nil && n.TickEdge != nil { + return true + } + + return false +} + +// SetTickEdge allocates a new n.TickEdge and returns the pointer to it. +func (n *NoteWidget) SetTickEdge(v string) { + n.TickEdge = &v +} + +// GetTickPos returns the TickPos field if non-nil, zero value otherwise. +func (n *NoteWidget) GetTickPos() string { + if n == nil || n.TickPos == nil { + return "" + } + return *n.TickPos +} + +// GetOkTickPos returns a tuple with the TickPos field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (n *NoteWidget) GetTickPosOk() (string, bool) { + if n == nil || n.TickPos == nil { + return "", false + } + return *n.TickPos, true +} + +// HasTickPos returns a boolean if a field has been set. +func (n *NoteWidget) HasTickPos() bool { + if n != nil && n.TickPos != nil { + return true + } + + return false +} + +// SetTickPos allocates a new n.TickPos and returns the pointer to it. +func (n *NoteWidget) SetTickPos(v string) { + n.TickPos = &v +} + +// GetTitle returns the Title field if non-nil, zero value otherwise. +func (n *NoteWidget) GetTitle() bool { + if n == nil || n.Title == nil { + return false + } + return *n.Title +} + +// GetOkTitle returns a tuple with the Title field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (n *NoteWidget) GetTitleOk() (bool, bool) { + if n == nil || n.Title == nil { + return false, false + } + return *n.Title, true +} + +// HasTitle returns a boolean if a field has been set. +func (n *NoteWidget) HasTitle() bool { + if n != nil && n.Title != nil { + return true + } + + return false +} + +// SetTitle allocates a new n.Title and returns the pointer to it. +func (n *NoteWidget) SetTitle(v bool) { + n.Title = &v +} + +// GetTitleAlign returns the TitleAlign field if non-nil, zero value otherwise. +func (n *NoteWidget) GetTitleAlign() string { + if n == nil || n.TitleAlign == nil { + return "" + } + return *n.TitleAlign +} + +// GetOkTitleAlign returns a tuple with the TitleAlign field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (n *NoteWidget) GetTitleAlignOk() (string, bool) { + if n == nil || n.TitleAlign == nil { + return "", false + } + return *n.TitleAlign, true +} + +// HasTitleAlign returns a boolean if a field has been set. +func (n *NoteWidget) HasTitleAlign() bool { + if n != nil && n.TitleAlign != nil { + return true + } + + return false +} + +// SetTitleAlign allocates a new n.TitleAlign and returns the pointer to it. +func (n *NoteWidget) SetTitleAlign(v string) { + n.TitleAlign = &v +} + +// GetTitleSize returns the TitleSize field if non-nil, zero value otherwise. +func (n *NoteWidget) GetTitleSize() int { + if n == nil || n.TitleSize == nil { + return 0 + } + return *n.TitleSize +} + +// GetOkTitleSize returns a tuple with the TitleSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (n *NoteWidget) GetTitleSizeOk() (int, bool) { + if n == nil || n.TitleSize == nil { + return 0, false + } + return *n.TitleSize, true +} + +// HasTitleSize returns a boolean if a field has been set. +func (n *NoteWidget) HasTitleSize() bool { + if n != nil && n.TitleSize != nil { + return true + } + + return false +} + +// SetTitleSize allocates a new n.TitleSize and returns the pointer to it. +func (n *NoteWidget) SetTitleSize(v int) { + n.TitleSize = &v +} + +// GetTitleText returns the TitleText field if non-nil, zero value otherwise. +func (n *NoteWidget) GetTitleText() string { + if n == nil || n.TitleText == nil { + return "" + } + return *n.TitleText +} + +// GetOkTitleText returns a tuple with the TitleText field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (n *NoteWidget) GetTitleTextOk() (string, bool) { + if n == nil || n.TitleText == nil { + return "", false + } + return *n.TitleText, true +} + +// HasTitleText returns a boolean if a field has been set. +func (n *NoteWidget) HasTitleText() bool { + if n != nil && n.TitleText != nil { + return true + } + + return false +} + +// SetTitleText allocates a new n.TitleText and returns the pointer to it. +func (n *NoteWidget) SetTitleText(v string) { + n.TitleText = &v +} + +// GetWidth returns the Width field if non-nil, zero value otherwise. +func (n *NoteWidget) GetWidth() int { + if n == nil || n.Width == nil { + return 0 + } + return *n.Width +} + +// GetOkWidth returns a tuple with the Width field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (n *NoteWidget) GetWidthOk() (int, bool) { + if n == nil || n.Width == nil { + return 0, false + } + return *n.Width, true +} + +// HasWidth returns a boolean if a field has been set. +func (n *NoteWidget) HasWidth() bool { + if n != nil && n.Width != nil { + return true + } + + return false +} + +// SetWidth allocates a new n.Width and returns the pointer to it. +func (n *NoteWidget) SetWidth(v int) { + n.Width = &v +} + +// GetX returns the X field if non-nil, zero value otherwise. +func (n *NoteWidget) GetX() int { + if n == nil || n.X == nil { + return 0 + } + return *n.X +} + +// GetOkX returns a tuple with the X field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (n *NoteWidget) GetXOk() (int, bool) { + if n == nil || n.X == nil { + return 0, false + } + return *n.X, true +} + +// HasX returns a boolean if a field has been set. +func (n *NoteWidget) HasX() bool { + if n != nil && n.X != nil { + return true + } + + return false +} + +// SetX allocates a new n.X and returns the pointer to it. +func (n *NoteWidget) SetX(v int) { + n.X = &v +} + +// GetY returns the Y field if non-nil, zero value otherwise. +func (n *NoteWidget) GetY() int { + if n == nil || n.Y == nil { + return 0 + } + return *n.Y +} + +// GetOkY returns a tuple with the Y field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (n *NoteWidget) GetYOk() (int, bool) { + if n == nil || n.Y == nil { + return 0, false + } + return *n.Y, true +} + +// HasY returns a boolean if a field has been set. +func (n *NoteWidget) HasY() bool { + if n != nil && n.Y != nil { + return true + } + + return false +} + +// SetY allocates a new n.Y and returns the pointer to it. +func (n *NoteWidget) SetY(v int) { + n.Y = &v +} + +// GetEscalationMessage returns the EscalationMessage field if non-nil, zero value otherwise. +func (o *Options) GetEscalationMessage() string { + if o == nil || o.EscalationMessage == nil { + return "" + } + return *o.EscalationMessage +} + +// GetOkEscalationMessage returns a tuple with the EscalationMessage field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (o *Options) GetEscalationMessageOk() (string, bool) { + if o == nil || o.EscalationMessage == nil { + return "", false + } + return *o.EscalationMessage, true +} + +// HasEscalationMessage returns a boolean if a field has been set. +func (o *Options) HasEscalationMessage() bool { + if o != nil && o.EscalationMessage != nil { + return true + } + + return false +} + +// SetEscalationMessage allocates a new o.EscalationMessage and returns the pointer to it. +func (o *Options) SetEscalationMessage(v string) { + o.EscalationMessage = &v +} + +// GetEvaluationDelay returns the EvaluationDelay field if non-nil, zero value otherwise. +func (o *Options) GetEvaluationDelay() int { + if o == nil || o.EvaluationDelay == nil { + return 0 + } + return *o.EvaluationDelay +} + +// GetOkEvaluationDelay returns a tuple with the EvaluationDelay field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (o *Options) GetEvaluationDelayOk() (int, bool) { + if o == nil || o.EvaluationDelay == nil { + return 0, false + } + return *o.EvaluationDelay, true +} + +// HasEvaluationDelay returns a boolean if a field has been set. +func (o *Options) HasEvaluationDelay() bool { + if o != nil && o.EvaluationDelay != nil { + return true + } + + return false +} + +// SetEvaluationDelay allocates a new o.EvaluationDelay and returns the pointer to it. +func (o *Options) SetEvaluationDelay(v int) { + o.EvaluationDelay = &v +} + +// GetIncludeTags returns the IncludeTags field if non-nil, zero value otherwise. +func (o *Options) GetIncludeTags() bool { + if o == nil || o.IncludeTags == nil { + return false + } + return *o.IncludeTags +} + +// GetOkIncludeTags returns a tuple with the IncludeTags field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (o *Options) GetIncludeTagsOk() (bool, bool) { + if o == nil || o.IncludeTags == nil { + return false, false + } + return *o.IncludeTags, true +} + +// HasIncludeTags returns a boolean if a field has been set. +func (o *Options) HasIncludeTags() bool { + if o != nil && o.IncludeTags != nil { + return true + } + + return false +} + +// SetIncludeTags allocates a new o.IncludeTags and returns the pointer to it. +func (o *Options) SetIncludeTags(v bool) { + o.IncludeTags = &v +} + +// GetLocked returns the Locked field if non-nil, zero value otherwise. +func (o *Options) GetLocked() bool { + if o == nil || o.Locked == nil { + return false + } + return *o.Locked +} + +// GetOkLocked returns a tuple with the Locked field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (o *Options) GetLockedOk() (bool, bool) { + if o == nil || o.Locked == nil { + return false, false + } + return *o.Locked, true +} + +// HasLocked returns a boolean if a field has been set. +func (o *Options) HasLocked() bool { + if o != nil && o.Locked != nil { + return true + } + + return false +} + +// SetLocked allocates a new o.Locked and returns the pointer to it. +func (o *Options) SetLocked(v bool) { + o.Locked = &v +} + +// GetNewHostDelay returns the NewHostDelay field if non-nil, zero value otherwise. +func (o *Options) GetNewHostDelay() int { + if o == nil || o.NewHostDelay == nil { + return 0 + } + return *o.NewHostDelay +} + +// GetOkNewHostDelay returns a tuple with the NewHostDelay field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (o *Options) GetNewHostDelayOk() (int, bool) { + if o == nil || o.NewHostDelay == nil { + return 0, false + } + return *o.NewHostDelay, true +} + +// HasNewHostDelay returns a boolean if a field has been set. +func (o *Options) HasNewHostDelay() bool { + if o != nil && o.NewHostDelay != nil { + return true + } + + return false +} + +// SetNewHostDelay allocates a new o.NewHostDelay and returns the pointer to it. +func (o *Options) SetNewHostDelay(v int) { + o.NewHostDelay = &v +} + +// GetNotifyAudit returns the NotifyAudit field if non-nil, zero value otherwise. +func (o *Options) GetNotifyAudit() bool { + if o == nil || o.NotifyAudit == nil { + return false + } + return *o.NotifyAudit +} + +// GetOkNotifyAudit returns a tuple with the NotifyAudit field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (o *Options) GetNotifyAuditOk() (bool, bool) { + if o == nil || o.NotifyAudit == nil { + return false, false + } + return *o.NotifyAudit, true +} + +// HasNotifyAudit returns a boolean if a field has been set. +func (o *Options) HasNotifyAudit() bool { + if o != nil && o.NotifyAudit != nil { + return true + } + + return false +} + +// SetNotifyAudit allocates a new o.NotifyAudit and returns the pointer to it. +func (o *Options) SetNotifyAudit(v bool) { + o.NotifyAudit = &v +} + +// GetNotifyNoData returns the NotifyNoData field if non-nil, zero value otherwise. +func (o *Options) GetNotifyNoData() bool { + if o == nil || o.NotifyNoData == nil { + return false + } + return *o.NotifyNoData +} + +// GetOkNotifyNoData returns a tuple with the NotifyNoData field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (o *Options) GetNotifyNoDataOk() (bool, bool) { + if o == nil || o.NotifyNoData == nil { + return false, false + } + return *o.NotifyNoData, true +} + +// HasNotifyNoData returns a boolean if a field has been set. +func (o *Options) HasNotifyNoData() bool { + if o != nil && o.NotifyNoData != nil { + return true + } + + return false +} + +// SetNotifyNoData allocates a new o.NotifyNoData and returns the pointer to it. +func (o *Options) SetNotifyNoData(v bool) { + o.NotifyNoData = &v +} + +// GetRenotifyInterval returns the RenotifyInterval field if non-nil, zero value otherwise. +func (o *Options) GetRenotifyInterval() int { + if o == nil || o.RenotifyInterval == nil { + return 0 + } + return *o.RenotifyInterval +} + +// GetOkRenotifyInterval returns a tuple with the RenotifyInterval field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (o *Options) GetRenotifyIntervalOk() (int, bool) { + if o == nil || o.RenotifyInterval == nil { + return 0, false + } + return *o.RenotifyInterval, true +} + +// HasRenotifyInterval returns a boolean if a field has been set. +func (o *Options) HasRenotifyInterval() bool { + if o != nil && o.RenotifyInterval != nil { + return true + } + + return false +} + +// SetRenotifyInterval allocates a new o.RenotifyInterval and returns the pointer to it. +func (o *Options) SetRenotifyInterval(v int) { + o.RenotifyInterval = &v +} + +// GetRequireFullWindow returns the RequireFullWindow field if non-nil, zero value otherwise. +func (o *Options) GetRequireFullWindow() bool { + if o == nil || o.RequireFullWindow == nil { + return false + } + return *o.RequireFullWindow +} + +// GetOkRequireFullWindow returns a tuple with the RequireFullWindow field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (o *Options) GetRequireFullWindowOk() (bool, bool) { + if o == nil || o.RequireFullWindow == nil { + return false, false + } + return *o.RequireFullWindow, true +} + +// HasRequireFullWindow returns a boolean if a field has been set. +func (o *Options) HasRequireFullWindow() bool { + if o != nil && o.RequireFullWindow != nil { + return true + } + + return false +} + +// SetRequireFullWindow allocates a new o.RequireFullWindow and returns the pointer to it. +func (o *Options) SetRequireFullWindow(v bool) { + o.RequireFullWindow = &v +} + +// GetThresholds returns the Thresholds field if non-nil, zero value otherwise. +func (o *Options) GetThresholds() ThresholdCount { + if o == nil || o.Thresholds == nil { + return ThresholdCount{} + } + return *o.Thresholds +} + +// GetOkThresholds returns a tuple with the Thresholds field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (o *Options) GetThresholdsOk() (ThresholdCount, bool) { + if o == nil || o.Thresholds == nil { + return ThresholdCount{}, false + } + return *o.Thresholds, true +} + +// HasThresholds returns a boolean if a field has been set. +func (o *Options) HasThresholds() bool { + if o != nil && o.Thresholds != nil { + return true + } + + return false +} + +// SetThresholds allocates a new o.Thresholds and returns the pointer to it. +func (o *Options) SetThresholds(v ThresholdCount) { + o.Thresholds = &v +} + +// GetTimeoutH returns the TimeoutH field if non-nil, zero value otherwise. +func (o *Options) GetTimeoutH() int { + if o == nil || o.TimeoutH == nil { + return 0 + } + return *o.TimeoutH +} + +// GetOkTimeoutH returns a tuple with the TimeoutH field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (o *Options) GetTimeoutHOk() (int, bool) { + if o == nil || o.TimeoutH == nil { + return 0, false + } + return *o.TimeoutH, true +} + +// HasTimeoutH returns a boolean if a field has been set. +func (o *Options) HasTimeoutH() bool { + if o != nil && o.TimeoutH != nil { + return true + } + + return false +} + +// SetTimeoutH allocates a new o.TimeoutH and returns the pointer to it. +func (o *Options) SetTimeoutH(v int) { + o.TimeoutH = &v +} + +// GetAggregator returns the Aggregator field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetAggregator() string { + if q == nil || q.Aggregator == nil { + return "" + } + return *q.Aggregator +} + +// GetOkAggregator returns a tuple with the Aggregator field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetAggregatorOk() (string, bool) { + if q == nil || q.Aggregator == nil { + return "", false + } + return *q.Aggregator, true +} + +// HasAggregator returns a boolean if a field has been set. +func (q *QueryValueWidget) HasAggregator() bool { + if q != nil && q.Aggregator != nil { + return true + } + + return false +} + +// SetAggregator allocates a new q.Aggregator and returns the pointer to it. +func (q *QueryValueWidget) SetAggregator(v string) { + q.Aggregator = &v +} + +// GetCalcFunc returns the CalcFunc field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetCalcFunc() string { + if q == nil || q.CalcFunc == nil { + return "" + } + return *q.CalcFunc +} + +// GetOkCalcFunc returns a tuple with the CalcFunc field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetCalcFuncOk() (string, bool) { + if q == nil || q.CalcFunc == nil { + return "", false + } + return *q.CalcFunc, true +} + +// HasCalcFunc returns a boolean if a field has been set. +func (q *QueryValueWidget) HasCalcFunc() bool { + if q != nil && q.CalcFunc != nil { + return true + } + + return false +} + +// SetCalcFunc allocates a new q.CalcFunc and returns the pointer to it. +func (q *QueryValueWidget) SetCalcFunc(v string) { + q.CalcFunc = &v +} + +// GetHeight returns the Height field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetHeight() int { + if q == nil || q.Height == nil { + return 0 + } + return *q.Height +} + +// GetOkHeight returns a tuple with the Height field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetHeightOk() (int, bool) { + if q == nil || q.Height == nil { + return 0, false + } + return *q.Height, true +} + +// HasHeight returns a boolean if a field has been set. +func (q *QueryValueWidget) HasHeight() bool { + if q != nil && q.Height != nil { + return true + } + + return false +} + +// SetHeight allocates a new q.Height and returns the pointer to it. +func (q *QueryValueWidget) SetHeight(v int) { + q.Height = &v +} + +// GetIsValidQuery returns the IsValidQuery field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetIsValidQuery() bool { + if q == nil || q.IsValidQuery == nil { + return false + } + return *q.IsValidQuery +} + +// GetOkIsValidQuery returns a tuple with the IsValidQuery field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetIsValidQueryOk() (bool, bool) { + if q == nil || q.IsValidQuery == nil { + return false, false + } + return *q.IsValidQuery, true +} + +// HasIsValidQuery returns a boolean if a field has been set. +func (q *QueryValueWidget) HasIsValidQuery() bool { + if q != nil && q.IsValidQuery != nil { + return true + } + + return false +} + +// SetIsValidQuery allocates a new q.IsValidQuery and returns the pointer to it. +func (q *QueryValueWidget) SetIsValidQuery(v bool) { + q.IsValidQuery = &v +} + +// GetMetric returns the Metric field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetMetric() string { + if q == nil || q.Metric == nil { + return "" + } + return *q.Metric +} + +// GetOkMetric returns a tuple with the Metric field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetMetricOk() (string, bool) { + if q == nil || q.Metric == nil { + return "", false + } + return *q.Metric, true +} + +// HasMetric returns a boolean if a field has been set. +func (q *QueryValueWidget) HasMetric() bool { + if q != nil && q.Metric != nil { + return true + } + + return false +} + +// SetMetric allocates a new q.Metric and returns the pointer to it. +func (q *QueryValueWidget) SetMetric(v string) { + q.Metric = &v +} + +// GetMetricType returns the MetricType field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetMetricType() string { + if q == nil || q.MetricType == nil { + return "" + } + return *q.MetricType +} + +// GetOkMetricType returns a tuple with the MetricType field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetMetricTypeOk() (string, bool) { + if q == nil || q.MetricType == nil { + return "", false + } + return *q.MetricType, true +} + +// HasMetricType returns a boolean if a field has been set. +func (q *QueryValueWidget) HasMetricType() bool { + if q != nil && q.MetricType != nil { + return true + } + + return false +} + +// SetMetricType allocates a new q.MetricType and returns the pointer to it. +func (q *QueryValueWidget) SetMetricType(v string) { + q.MetricType = &v +} + +// GetPrecision returns the Precision field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetPrecision() int { + if q == nil || q.Precision == nil { + return 0 + } + return *q.Precision +} + +// GetOkPrecision returns a tuple with the Precision field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetPrecisionOk() (int, bool) { + if q == nil || q.Precision == nil { + return 0, false + } + return *q.Precision, true +} + +// HasPrecision returns a boolean if a field has been set. +func (q *QueryValueWidget) HasPrecision() bool { + if q != nil && q.Precision != nil { + return true + } + + return false +} + +// SetPrecision allocates a new q.Precision and returns the pointer to it. +func (q *QueryValueWidget) SetPrecision(v int) { + q.Precision = &v +} + +// GetQuery returns the Query field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetQuery() string { + if q == nil || q.Query == nil { + return "" + } + return *q.Query +} + +// GetOkQuery returns a tuple with the Query field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetQueryOk() (string, bool) { + if q == nil || q.Query == nil { + return "", false + } + return *q.Query, true +} + +// HasQuery returns a boolean if a field has been set. +func (q *QueryValueWidget) HasQuery() bool { + if q != nil && q.Query != nil { + return true + } + + return false +} + +// SetQuery allocates a new q.Query and returns the pointer to it. +func (q *QueryValueWidget) SetQuery(v string) { + q.Query = &v +} + +// GetResultCalcFunc returns the ResultCalcFunc field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetResultCalcFunc() string { + if q == nil || q.ResultCalcFunc == nil { + return "" + } + return *q.ResultCalcFunc +} + +// GetOkResultCalcFunc returns a tuple with the ResultCalcFunc field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetResultCalcFuncOk() (string, bool) { + if q == nil || q.ResultCalcFunc == nil { + return "", false + } + return *q.ResultCalcFunc, true +} + +// HasResultCalcFunc returns a boolean if a field has been set. +func (q *QueryValueWidget) HasResultCalcFunc() bool { + if q != nil && q.ResultCalcFunc != nil { + return true + } + + return false +} + +// SetResultCalcFunc allocates a new q.ResultCalcFunc and returns the pointer to it. +func (q *QueryValueWidget) SetResultCalcFunc(v string) { + q.ResultCalcFunc = &v +} + +// GetTextAlign returns the TextAlign field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetTextAlign() string { + if q == nil || q.TextAlign == nil { + return "" + } + return *q.TextAlign +} + +// GetOkTextAlign returns a tuple with the TextAlign field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetTextAlignOk() (string, bool) { + if q == nil || q.TextAlign == nil { + return "", false + } + return *q.TextAlign, true +} + +// HasTextAlign returns a boolean if a field has been set. +func (q *QueryValueWidget) HasTextAlign() bool { + if q != nil && q.TextAlign != nil { + return true + } + + return false +} + +// SetTextAlign allocates a new q.TextAlign and returns the pointer to it. +func (q *QueryValueWidget) SetTextAlign(v string) { + q.TextAlign = &v +} + +// GetTextSize returns the TextSize field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetTextSize() TextSize { + if q == nil || q.TextSize == nil { + return TextSize{} + } + return *q.TextSize +} + +// GetOkTextSize returns a tuple with the TextSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetTextSizeOk() (TextSize, bool) { + if q == nil || q.TextSize == nil { + return TextSize{}, false + } + return *q.TextSize, true +} + +// HasTextSize returns a boolean if a field has been set. +func (q *QueryValueWidget) HasTextSize() bool { + if q != nil && q.TextSize != nil { + return true + } + + return false +} + +// SetTextSize allocates a new q.TextSize and returns the pointer to it. +func (q *QueryValueWidget) SetTextSize(v TextSize) { + q.TextSize = &v +} + +// GetTimeframe returns the Timeframe field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetTimeframe() string { + if q == nil || q.Timeframe == nil { + return "" + } + return *q.Timeframe +} + +// GetOkTimeframe returns a tuple with the Timeframe field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetTimeframeOk() (string, bool) { + if q == nil || q.Timeframe == nil { + return "", false + } + return *q.Timeframe, true +} + +// HasTimeframe returns a boolean if a field has been set. +func (q *QueryValueWidget) HasTimeframe() bool { + if q != nil && q.Timeframe != nil { + return true + } + + return false +} + +// SetTimeframe allocates a new q.Timeframe and returns the pointer to it. +func (q *QueryValueWidget) SetTimeframe(v string) { + q.Timeframe = &v +} + +// GetTimeframeAggregator returns the TimeframeAggregator field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetTimeframeAggregator() string { + if q == nil || q.TimeframeAggregator == nil { + return "" + } + return *q.TimeframeAggregator +} + +// GetOkTimeframeAggregator returns a tuple with the TimeframeAggregator field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetTimeframeAggregatorOk() (string, bool) { + if q == nil || q.TimeframeAggregator == nil { + return "", false + } + return *q.TimeframeAggregator, true +} + +// HasTimeframeAggregator returns a boolean if a field has been set. +func (q *QueryValueWidget) HasTimeframeAggregator() bool { + if q != nil && q.TimeframeAggregator != nil { + return true + } + + return false +} + +// SetTimeframeAggregator allocates a new q.TimeframeAggregator and returns the pointer to it. +func (q *QueryValueWidget) SetTimeframeAggregator(v string) { + q.TimeframeAggregator = &v +} + +// GetTitle returns the Title field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetTitle() bool { + if q == nil || q.Title == nil { + return false + } + return *q.Title +} + +// GetOkTitle returns a tuple with the Title field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetTitleOk() (bool, bool) { + if q == nil || q.Title == nil { + return false, false + } + return *q.Title, true +} + +// HasTitle returns a boolean if a field has been set. +func (q *QueryValueWidget) HasTitle() bool { + if q != nil && q.Title != nil { + return true + } + + return false +} + +// SetTitle allocates a new q.Title and returns the pointer to it. +func (q *QueryValueWidget) SetTitle(v bool) { + q.Title = &v +} + +// GetTitleAlign returns the TitleAlign field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetTitleAlign() string { + if q == nil || q.TitleAlign == nil { + return "" + } + return *q.TitleAlign +} + +// GetOkTitleAlign returns a tuple with the TitleAlign field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetTitleAlignOk() (string, bool) { + if q == nil || q.TitleAlign == nil { + return "", false + } + return *q.TitleAlign, true +} + +// HasTitleAlign returns a boolean if a field has been set. +func (q *QueryValueWidget) HasTitleAlign() bool { + if q != nil && q.TitleAlign != nil { + return true + } + + return false +} + +// SetTitleAlign allocates a new q.TitleAlign and returns the pointer to it. +func (q *QueryValueWidget) SetTitleAlign(v string) { + q.TitleAlign = &v +} + +// GetTitleSize returns the TitleSize field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetTitleSize() TextSize { + if q == nil || q.TitleSize == nil { + return TextSize{} + } + return *q.TitleSize +} + +// GetOkTitleSize returns a tuple with the TitleSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetTitleSizeOk() (TextSize, bool) { + if q == nil || q.TitleSize == nil { + return TextSize{}, false + } + return *q.TitleSize, true +} + +// HasTitleSize returns a boolean if a field has been set. +func (q *QueryValueWidget) HasTitleSize() bool { + if q != nil && q.TitleSize != nil { + return true + } + + return false +} + +// SetTitleSize allocates a new q.TitleSize and returns the pointer to it. +func (q *QueryValueWidget) SetTitleSize(v TextSize) { + q.TitleSize = &v +} + +// GetTitleText returns the TitleText field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetTitleText() string { + if q == nil || q.TitleText == nil { + return "" + } + return *q.TitleText +} + +// GetOkTitleText returns a tuple with the TitleText field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetTitleTextOk() (string, bool) { + if q == nil || q.TitleText == nil { + return "", false + } + return *q.TitleText, true +} + +// HasTitleText returns a boolean if a field has been set. +func (q *QueryValueWidget) HasTitleText() bool { + if q != nil && q.TitleText != nil { + return true + } + + return false +} + +// SetTitleText allocates a new q.TitleText and returns the pointer to it. +func (q *QueryValueWidget) SetTitleText(v string) { + q.TitleText = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetType() string { + if q == nil || q.Type == nil { + return "" + } + return *q.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetTypeOk() (string, bool) { + if q == nil || q.Type == nil { + return "", false + } + return *q.Type, true +} + +// HasType returns a boolean if a field has been set. +func (q *QueryValueWidget) HasType() bool { + if q != nil && q.Type != nil { + return true + } + + return false +} + +// SetType allocates a new q.Type and returns the pointer to it. +func (q *QueryValueWidget) SetType(v string) { + q.Type = &v +} + +// GetUnit returns the Unit field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetUnit() string { + if q == nil || q.Unit == nil { + return "" + } + return *q.Unit +} + +// GetOkUnit returns a tuple with the Unit field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetUnitOk() (string, bool) { + if q == nil || q.Unit == nil { + return "", false + } + return *q.Unit, true +} + +// HasUnit returns a boolean if a field has been set. +func (q *QueryValueWidget) HasUnit() bool { + if q != nil && q.Unit != nil { + return true + } + + return false +} + +// SetUnit allocates a new q.Unit and returns the pointer to it. +func (q *QueryValueWidget) SetUnit(v string) { + q.Unit = &v +} + +// GetWidth returns the Width field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetWidth() int { + if q == nil || q.Width == nil { + return 0 + } + return *q.Width +} + +// GetOkWidth returns a tuple with the Width field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetWidthOk() (int, bool) { + if q == nil || q.Width == nil { + return 0, false + } + return *q.Width, true +} + +// HasWidth returns a boolean if a field has been set. +func (q *QueryValueWidget) HasWidth() bool { + if q != nil && q.Width != nil { + return true + } + + return false +} + +// SetWidth allocates a new q.Width and returns the pointer to it. +func (q *QueryValueWidget) SetWidth(v int) { + q.Width = &v +} + +// GetX returns the X field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetX() int { + if q == nil || q.X == nil { + return 0 + } + return *q.X +} + +// GetOkX returns a tuple with the X field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetXOk() (int, bool) { + if q == nil || q.X == nil { + return 0, false + } + return *q.X, true +} + +// HasX returns a boolean if a field has been set. +func (q *QueryValueWidget) HasX() bool { + if q != nil && q.X != nil { + return true + } + + return false +} + +// SetX allocates a new q.X and returns the pointer to it. +func (q *QueryValueWidget) SetX(v int) { + q.X = &v +} + +// GetY returns the Y field if non-nil, zero value otherwise. +func (q *QueryValueWidget) GetY() int { + if q == nil || q.Y == nil { + return 0 + } + return *q.Y +} + +// GetOkY returns a tuple with the Y field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (q *QueryValueWidget) GetYOk() (int, bool) { + if q == nil || q.Y == nil { + return 0, false + } + return *q.Y, true +} + +// HasY returns a boolean if a field has been set. +func (q *QueryValueWidget) HasY() bool { + if q != nil && q.Y != nil { + return true + } + + return false +} + +// SetY allocates a new q.Y and returns the pointer to it. +func (q *QueryValueWidget) SetY(v int) { + q.Y = &v +} + +// GetPeriod returns the Period field if non-nil, zero value otherwise. +func (r *Recurrence) GetPeriod() int { + if r == nil || r.Period == nil { + return 0 + } + return *r.Period +} + +// GetOkPeriod returns a tuple with the Period field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (r *Recurrence) GetPeriodOk() (int, bool) { + if r == nil || r.Period == nil { + return 0, false + } + return *r.Period, true +} + +// HasPeriod returns a boolean if a field has been set. +func (r *Recurrence) HasPeriod() bool { + if r != nil && r.Period != nil { + return true + } + + return false +} + +// SetPeriod allocates a new r.Period and returns the pointer to it. +func (r *Recurrence) SetPeriod(v int) { + r.Period = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (r *Recurrence) GetType() string { + if r == nil || r.Type == nil { + return "" + } + return *r.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (r *Recurrence) GetTypeOk() (string, bool) { + if r == nil || r.Type == nil { + return "", false + } + return *r.Type, true +} + +// HasType returns a boolean if a field has been set. +func (r *Recurrence) HasType() bool { + if r != nil && r.Type != nil { + return true + } + + return false +} + +// SetType allocates a new r.Type and returns the pointer to it. +func (r *Recurrence) SetType(v string) { + r.Type = &v +} + +// GetUntilDate returns the UntilDate field if non-nil, zero value otherwise. +func (r *Recurrence) GetUntilDate() int { + if r == nil || r.UntilDate == nil { + return 0 + } + return *r.UntilDate +} + +// GetOkUntilDate returns a tuple with the UntilDate field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (r *Recurrence) GetUntilDateOk() (int, bool) { + if r == nil || r.UntilDate == nil { + return 0, false + } + return *r.UntilDate, true +} + +// HasUntilDate returns a boolean if a field has been set. +func (r *Recurrence) HasUntilDate() bool { + if r != nil && r.UntilDate != nil { + return true + } + + return false +} + +// SetUntilDate allocates a new r.UntilDate and returns the pointer to it. +func (r *Recurrence) SetUntilDate(v int) { + r.UntilDate = &v +} + +// GetUntilOccurrences returns the UntilOccurrences field if non-nil, zero value otherwise. +func (r *Recurrence) GetUntilOccurrences() int { + if r == nil || r.UntilOccurrences == nil { + return 0 + } + return *r.UntilOccurrences +} + +// GetOkUntilOccurrences returns a tuple with the UntilOccurrences field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (r *Recurrence) GetUntilOccurrencesOk() (int, bool) { + if r == nil || r.UntilOccurrences == nil { + return 0, false + } + return *r.UntilOccurrences, true +} + +// HasUntilOccurrences returns a boolean if a field has been set. +func (r *Recurrence) HasUntilOccurrences() bool { + if r != nil && r.UntilOccurrences != nil { + return true + } + + return false +} + +// SetUntilOccurrences allocates a new r.UntilOccurrences and returns the pointer to it. +func (r *Recurrence) SetUntilOccurrences(v int) { + r.UntilOccurrences = &v +} + +// GetComment returns the Comment field if non-nil, zero value otherwise. +func (r *reqComment) GetComment() Comment { + if r == nil || r.Comment == nil { + return Comment{} + } + return *r.Comment +} + +// GetOkComment returns a tuple with the Comment field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (r *reqComment) GetCommentOk() (Comment, bool) { + if r == nil || r.Comment == nil { + return Comment{}, false + } + return *r.Comment, true +} + +// HasComment returns a boolean if a field has been set. +func (r *reqComment) HasComment() bool { + if r != nil && r.Comment != nil { + return true + } + + return false +} + +// SetComment allocates a new r.Comment and returns the pointer to it. +func (r *reqComment) SetComment(v Comment) { + r.Comment = &v +} + +// GetDashboard returns the Dashboard field if non-nil, zero value otherwise. +func (r *reqGetDashboard) GetDashboard() Dashboard { + if r == nil || r.Dashboard == nil { + return Dashboard{} + } + return *r.Dashboard +} + +// GetOkDashboard returns a tuple with the Dashboard field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (r *reqGetDashboard) GetDashboardOk() (Dashboard, bool) { + if r == nil || r.Dashboard == nil { + return Dashboard{}, false + } + return *r.Dashboard, true +} + +// HasDashboard returns a boolean if a field has been set. +func (r *reqGetDashboard) HasDashboard() bool { + if r != nil && r.Dashboard != nil { + return true + } + + return false +} + +// SetDashboard allocates a new r.Dashboard and returns the pointer to it. +func (r *reqGetDashboard) SetDashboard(v Dashboard) { + r.Dashboard = &v +} + +// GetResource returns the Resource field if non-nil, zero value otherwise. +func (r *reqGetDashboard) GetResource() string { + if r == nil || r.Resource == nil { + return "" + } + return *r.Resource +} + +// GetOkResource returns a tuple with the Resource field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (r *reqGetDashboard) GetResourceOk() (string, bool) { + if r == nil || r.Resource == nil { + return "", false + } + return *r.Resource, true +} + +// HasResource returns a boolean if a field has been set. +func (r *reqGetDashboard) HasResource() bool { + if r != nil && r.Resource != nil { + return true + } + + return false +} + +// SetResource allocates a new r.Resource and returns the pointer to it. +func (r *reqGetDashboard) SetResource(v string) { + r.Resource = &v +} + +// GetUrl returns the Url field if non-nil, zero value otherwise. +func (r *reqGetDashboard) GetUrl() string { + if r == nil || r.Url == nil { + return "" + } + return *r.Url +} + +// GetOkUrl returns a tuple with the Url field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (r *reqGetDashboard) GetUrlOk() (string, bool) { + if r == nil || r.Url == nil { + return "", false + } + return *r.Url, true +} + +// HasUrl returns a boolean if a field has been set. +func (r *reqGetDashboard) HasUrl() bool { + if r != nil && r.Url != nil { + return true + } + + return false +} + +// SetUrl allocates a new r.Url and returns the pointer to it. +func (r *reqGetDashboard) SetUrl(v string) { + r.Url = &v +} + +// GetEvent returns the Event field if non-nil, zero value otherwise. +func (r *reqGetEvent) GetEvent() Event { + if r == nil || r.Event == nil { + return Event{} + } + return *r.Event +} + +// GetOkEvent returns a tuple with the Event field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (r *reqGetEvent) GetEventOk() (Event, bool) { + if r == nil || r.Event == nil { + return Event{}, false + } + return *r.Event, true +} + +// HasEvent returns a boolean if a field has been set. +func (r *reqGetEvent) HasEvent() bool { + if r != nil && r.Event != nil { + return true + } + + return false +} + +// SetEvent allocates a new r.Event and returns the pointer to it. +func (r *reqGetEvent) SetEvent(v Event) { + r.Event = &v +} + +// GetTags returns the Tags field if non-nil, zero value otherwise. +func (r *reqGetTags) GetTags() TagMap { + if r == nil || r.Tags == nil { + return TagMap{} + } + return *r.Tags +} + +// GetOkTags returns a tuple with the Tags field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (r *reqGetTags) GetTagsOk() (TagMap, bool) { + if r == nil || r.Tags == nil { + return TagMap{}, false + } + return *r.Tags, true +} + +// HasTags returns a boolean if a field has been set. +func (r *reqGetTags) HasTags() bool { + if r != nil && r.Tags != nil { + return true + } + + return false +} + +// SetTags allocates a new r.Tags and returns the pointer to it. +func (r *reqGetTags) SetTags(v TagMap) { + r.Tags = &v +} + +// GetHeight returns the Height field if non-nil, zero value otherwise. +func (s *Screenboard) GetHeight() string { + if s == nil || s.Height == nil { + return "" + } + return *s.Height +} + +// GetOkHeight returns a tuple with the Height field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *Screenboard) GetHeightOk() (string, bool) { + if s == nil || s.Height == nil { + return "", false + } + return *s.Height, true +} + +// HasHeight returns a boolean if a field has been set. +func (s *Screenboard) HasHeight() bool { + if s != nil && s.Height != nil { + return true + } + + return false +} + +// SetHeight allocates a new s.Height and returns the pointer to it. +func (s *Screenboard) SetHeight(v string) { + s.Height = &v +} + +// GetId returns the Id field if non-nil, zero value otherwise. +func (s *Screenboard) GetId() int { + if s == nil || s.Id == nil { + return 0 + } + return *s.Id +} + +// GetOkId returns a tuple with the Id field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *Screenboard) GetIdOk() (int, bool) { + if s == nil || s.Id == nil { + return 0, false + } + return *s.Id, true +} + +// HasId returns a boolean if a field has been set. +func (s *Screenboard) HasId() bool { + if s != nil && s.Id != nil { + return true + } + + return false +} + +// SetId allocates a new s.Id and returns the pointer to it. +func (s *Screenboard) SetId(v int) { + s.Id = &v +} + +// GetReadOnly returns the ReadOnly field if non-nil, zero value otherwise. +func (s *Screenboard) GetReadOnly() bool { + if s == nil || s.ReadOnly == nil { + return false + } + return *s.ReadOnly +} + +// GetOkReadOnly returns a tuple with the ReadOnly field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *Screenboard) GetReadOnlyOk() (bool, bool) { + if s == nil || s.ReadOnly == nil { + return false, false + } + return *s.ReadOnly, true +} + +// HasReadOnly returns a boolean if a field has been set. +func (s *Screenboard) HasReadOnly() bool { + if s != nil && s.ReadOnly != nil { + return true + } + + return false +} + +// SetReadOnly allocates a new s.ReadOnly and returns the pointer to it. +func (s *Screenboard) SetReadOnly(v bool) { + s.ReadOnly = &v +} + +// GetShared returns the Shared field if non-nil, zero value otherwise. +func (s *Screenboard) GetShared() bool { + if s == nil || s.Shared == nil { + return false + } + return *s.Shared +} + +// GetOkShared returns a tuple with the Shared field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *Screenboard) GetSharedOk() (bool, bool) { + if s == nil || s.Shared == nil { + return false, false + } + return *s.Shared, true +} + +// HasShared returns a boolean if a field has been set. +func (s *Screenboard) HasShared() bool { + if s != nil && s.Shared != nil { + return true + } + + return false +} + +// SetShared allocates a new s.Shared and returns the pointer to it. +func (s *Screenboard) SetShared(v bool) { + s.Shared = &v +} + +// GetTemplated returns the Templated field if non-nil, zero value otherwise. +func (s *Screenboard) GetTemplated() bool { + if s == nil || s.Templated == nil { + return false + } + return *s.Templated +} + +// GetOkTemplated returns a tuple with the Templated field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *Screenboard) GetTemplatedOk() (bool, bool) { + if s == nil || s.Templated == nil { + return false, false + } + return *s.Templated, true +} + +// HasTemplated returns a boolean if a field has been set. +func (s *Screenboard) HasTemplated() bool { + if s != nil && s.Templated != nil { + return true + } + + return false +} + +// SetTemplated allocates a new s.Templated and returns the pointer to it. +func (s *Screenboard) SetTemplated(v bool) { + s.Templated = &v +} + +// GetTitle returns the Title field if non-nil, zero value otherwise. +func (s *Screenboard) GetTitle() string { + if s == nil || s.Title == nil { + return "" + } + return *s.Title +} + +// GetOkTitle returns a tuple with the Title field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *Screenboard) GetTitleOk() (string, bool) { + if s == nil || s.Title == nil { + return "", false + } + return *s.Title, true +} + +// HasTitle returns a boolean if a field has been set. +func (s *Screenboard) HasTitle() bool { + if s != nil && s.Title != nil { + return true + } + + return false +} + +// SetTitle allocates a new s.Title and returns the pointer to it. +func (s *Screenboard) SetTitle(v string) { + s.Title = &v +} + +// GetWidth returns the Width field if non-nil, zero value otherwise. +func (s *Screenboard) GetWidth() string { + if s == nil || s.Width == nil { + return "" + } + return *s.Width +} + +// GetOkWidth returns a tuple with the Width field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *Screenboard) GetWidthOk() (string, bool) { + if s == nil || s.Width == nil { + return "", false + } + return *s.Width, true +} + +// HasWidth returns a boolean if a field has been set. +func (s *Screenboard) HasWidth() bool { + if s != nil && s.Width != nil { + return true + } + + return false +} + +// SetWidth allocates a new s.Width and returns the pointer to it. +func (s *Screenboard) SetWidth(v string) { + s.Width = &v +} + +// GetId returns the Id field if non-nil, zero value otherwise. +func (s *ScreenboardLite) GetId() int { + if s == nil || s.Id == nil { + return 0 + } + return *s.Id +} + +// GetOkId returns a tuple with the Id field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *ScreenboardLite) GetIdOk() (int, bool) { + if s == nil || s.Id == nil { + return 0, false + } + return *s.Id, true +} + +// HasId returns a boolean if a field has been set. +func (s *ScreenboardLite) HasId() bool { + if s != nil && s.Id != nil { + return true + } + + return false +} + +// SetId allocates a new s.Id and returns the pointer to it. +func (s *ScreenboardLite) SetId(v int) { + s.Id = &v +} + +// GetResource returns the Resource field if non-nil, zero value otherwise. +func (s *ScreenboardLite) GetResource() string { + if s == nil || s.Resource == nil { + return "" + } + return *s.Resource +} + +// GetOkResource returns a tuple with the Resource field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *ScreenboardLite) GetResourceOk() (string, bool) { + if s == nil || s.Resource == nil { + return "", false + } + return *s.Resource, true +} + +// HasResource returns a boolean if a field has been set. +func (s *ScreenboardLite) HasResource() bool { + if s != nil && s.Resource != nil { + return true + } + + return false +} + +// SetResource allocates a new s.Resource and returns the pointer to it. +func (s *ScreenboardLite) SetResource(v string) { + s.Resource = &v +} + +// GetTitle returns the Title field if non-nil, zero value otherwise. +func (s *ScreenboardLite) GetTitle() string { + if s == nil || s.Title == nil { + return "" + } + return *s.Title +} + +// GetOkTitle returns a tuple with the Title field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *ScreenboardLite) GetTitleOk() (string, bool) { + if s == nil || s.Title == nil { + return "", false + } + return *s.Title, true +} + +// HasTitle returns a boolean if a field has been set. +func (s *ScreenboardLite) HasTitle() bool { + if s != nil && s.Title != nil { + return true + } + + return false +} + +// SetTitle allocates a new s.Title and returns the pointer to it. +func (s *ScreenboardLite) SetTitle(v string) { + s.Title = &v +} + +// GetAggr returns the Aggr field if non-nil, zero value otherwise. +func (s *Series) GetAggr() string { + if s == nil || s.Aggr == nil { + return "" + } + return *s.Aggr +} + +// GetOkAggr returns a tuple with the Aggr field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *Series) GetAggrOk() (string, bool) { + if s == nil || s.Aggr == nil { + return "", false + } + return *s.Aggr, true +} + +// HasAggr returns a boolean if a field has been set. +func (s *Series) HasAggr() bool { + if s != nil && s.Aggr != nil { + return true + } + + return false +} + +// SetAggr allocates a new s.Aggr and returns the pointer to it. +func (s *Series) SetAggr(v string) { + s.Aggr = &v +} + +// GetDisplayName returns the DisplayName field if non-nil, zero value otherwise. +func (s *Series) GetDisplayName() string { + if s == nil || s.DisplayName == nil { + return "" + } + return *s.DisplayName +} + +// GetOkDisplayName returns a tuple with the DisplayName field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *Series) GetDisplayNameOk() (string, bool) { + if s == nil || s.DisplayName == nil { + return "", false + } + return *s.DisplayName, true +} + +// HasDisplayName returns a boolean if a field has been set. +func (s *Series) HasDisplayName() bool { + if s != nil && s.DisplayName != nil { + return true + } + + return false +} + +// SetDisplayName allocates a new s.DisplayName and returns the pointer to it. +func (s *Series) SetDisplayName(v string) { + s.DisplayName = &v +} + +// GetEnd returns the End field if non-nil, zero value otherwise. +func (s *Series) GetEnd() float64 { + if s == nil || s.End == nil { + return 0 + } + return *s.End +} + +// GetOkEnd returns a tuple with the End field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *Series) GetEndOk() (float64, bool) { + if s == nil || s.End == nil { + return 0, false + } + return *s.End, true +} + +// HasEnd returns a boolean if a field has been set. +func (s *Series) HasEnd() bool { + if s != nil && s.End != nil { + return true + } + + return false +} + +// SetEnd allocates a new s.End and returns the pointer to it. +func (s *Series) SetEnd(v float64) { + s.End = &v +} + +// GetExpression returns the Expression field if non-nil, zero value otherwise. +func (s *Series) GetExpression() string { + if s == nil || s.Expression == nil { + return "" + } + return *s.Expression +} + +// GetOkExpression returns a tuple with the Expression field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *Series) GetExpressionOk() (string, bool) { + if s == nil || s.Expression == nil { + return "", false + } + return *s.Expression, true +} + +// HasExpression returns a boolean if a field has been set. +func (s *Series) HasExpression() bool { + if s != nil && s.Expression != nil { + return true + } + + return false +} + +// SetExpression allocates a new s.Expression and returns the pointer to it. +func (s *Series) SetExpression(v string) { + s.Expression = &v +} + +// GetInterval returns the Interval field if non-nil, zero value otherwise. +func (s *Series) GetInterval() int { + if s == nil || s.Interval == nil { + return 0 + } + return *s.Interval +} + +// GetOkInterval returns a tuple with the Interval field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *Series) GetIntervalOk() (int, bool) { + if s == nil || s.Interval == nil { + return 0, false + } + return *s.Interval, true +} + +// HasInterval returns a boolean if a field has been set. +func (s *Series) HasInterval() bool { + if s != nil && s.Interval != nil { + return true + } + + return false +} + +// SetInterval allocates a new s.Interval and returns the pointer to it. +func (s *Series) SetInterval(v int) { + s.Interval = &v +} + +// GetLength returns the Length field if non-nil, zero value otherwise. +func (s *Series) GetLength() int { + if s == nil || s.Length == nil { + return 0 + } + return *s.Length +} + +// GetOkLength returns a tuple with the Length field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *Series) GetLengthOk() (int, bool) { + if s == nil || s.Length == nil { + return 0, false + } + return *s.Length, true +} + +// HasLength returns a boolean if a field has been set. +func (s *Series) HasLength() bool { + if s != nil && s.Length != nil { + return true + } + + return false +} + +// SetLength allocates a new s.Length and returns the pointer to it. +func (s *Series) SetLength(v int) { + s.Length = &v +} + +// GetMetric returns the Metric field if non-nil, zero value otherwise. +func (s *Series) GetMetric() string { + if s == nil || s.Metric == nil { + return "" + } + return *s.Metric +} + +// GetOkMetric returns a tuple with the Metric field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *Series) GetMetricOk() (string, bool) { + if s == nil || s.Metric == nil { + return "", false + } + return *s.Metric, true +} + +// HasMetric returns a boolean if a field has been set. +func (s *Series) HasMetric() bool { + if s != nil && s.Metric != nil { + return true + } + + return false +} + +// SetMetric allocates a new s.Metric and returns the pointer to it. +func (s *Series) SetMetric(v string) { + s.Metric = &v +} + +// GetScope returns the Scope field if non-nil, zero value otherwise. +func (s *Series) GetScope() string { + if s == nil || s.Scope == nil { + return "" + } + return *s.Scope +} + +// GetOkScope returns a tuple with the Scope field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *Series) GetScopeOk() (string, bool) { + if s == nil || s.Scope == nil { + return "", false + } + return *s.Scope, true +} + +// HasScope returns a boolean if a field has been set. +func (s *Series) HasScope() bool { + if s != nil && s.Scope != nil { + return true + } + + return false +} + +// SetScope allocates a new s.Scope and returns the pointer to it. +func (s *Series) SetScope(v string) { + s.Scope = &v +} + +// GetStart returns the Start field if non-nil, zero value otherwise. +func (s *Series) GetStart() float64 { + if s == nil || s.Start == nil { + return 0 + } + return *s.Start +} + +// GetOkStart returns a tuple with the Start field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *Series) GetStartOk() (float64, bool) { + if s == nil || s.Start == nil { + return 0, false + } + return *s.Start, true +} + +// HasStart returns a boolean if a field has been set. +func (s *Series) HasStart() bool { + if s != nil && s.Start != nil { + return true + } + + return false +} + +// SetStart allocates a new s.Start and returns the pointer to it. +func (s *Series) SetStart(v float64) { + s.Start = &v +} + +// GetUnits returns the Units field if non-nil, zero value otherwise. +func (s *Series) GetUnits() UnitPair { + if s == nil || s.Units == nil { + return UnitPair{} + } + return *s.Units +} + +// GetOkUnits returns a tuple with the Units field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *Series) GetUnitsOk() (UnitPair, bool) { + if s == nil || s.Units == nil { + return UnitPair{}, false + } + return *s.Units, true +} + +// HasUnits returns a boolean if a field has been set. +func (s *Series) HasUnits() bool { + if s != nil && s.Units != nil { + return true + } + + return false +} + +// SetUnits allocates a new s.Units and returns the pointer to it. +func (s *Series) SetUnits(v UnitPair) { + s.Units = &v +} + +// GetAccount returns the Account field if non-nil, zero value otherwise. +func (s *ServiceHookSlackRequest) GetAccount() string { + if s == nil || s.Account == nil { + return "" + } + return *s.Account +} + +// GetOkAccount returns a tuple with the Account field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *ServiceHookSlackRequest) GetAccountOk() (string, bool) { + if s == nil || s.Account == nil { + return "", false + } + return *s.Account, true +} + +// HasAccount returns a boolean if a field has been set. +func (s *ServiceHookSlackRequest) HasAccount() bool { + if s != nil && s.Account != nil { + return true + } + + return false +} + +// SetAccount allocates a new s.Account and returns the pointer to it. +func (s *ServiceHookSlackRequest) SetAccount(v string) { + s.Account = &v +} + +// GetUrl returns the Url field if non-nil, zero value otherwise. +func (s *ServiceHookSlackRequest) GetUrl() string { + if s == nil || s.Url == nil { + return "" + } + return *s.Url +} + +// GetOkUrl returns a tuple with the Url field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *ServiceHookSlackRequest) GetUrlOk() (string, bool) { + if s == nil || s.Url == nil { + return "", false + } + return *s.Url, true +} + +// HasUrl returns a boolean if a field has been set. +func (s *ServiceHookSlackRequest) HasUrl() bool { + if s != nil && s.Url != nil { + return true + } + + return false +} + +// SetUrl allocates a new s.Url and returns the pointer to it. +func (s *ServiceHookSlackRequest) SetUrl(v string) { + s.Url = &v +} + +// GetServiceKey returns the ServiceKey field if non-nil, zero value otherwise. +func (s *servicePD) GetServiceKey() string { + if s == nil || s.ServiceKey == nil { + return "" + } + return *s.ServiceKey +} + +// GetOkServiceKey returns a tuple with the ServiceKey field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *servicePD) GetServiceKeyOk() (string, bool) { + if s == nil || s.ServiceKey == nil { + return "", false + } + return *s.ServiceKey, true +} + +// HasServiceKey returns a boolean if a field has been set. +func (s *servicePD) HasServiceKey() bool { + if s != nil && s.ServiceKey != nil { + return true + } + + return false +} + +// SetServiceKey allocates a new s.ServiceKey and returns the pointer to it. +func (s *servicePD) SetServiceKey(v string) { + s.ServiceKey = &v +} + +// GetServiceName returns the ServiceName field if non-nil, zero value otherwise. +func (s *servicePD) GetServiceName() string { + if s == nil || s.ServiceName == nil { + return "" + } + return *s.ServiceName +} + +// GetOkServiceName returns a tuple with the ServiceName field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *servicePD) GetServiceNameOk() (string, bool) { + if s == nil || s.ServiceName == nil { + return "", false + } + return *s.ServiceName, true +} + +// HasServiceName returns a boolean if a field has been set. +func (s *servicePD) HasServiceName() bool { + if s != nil && s.ServiceName != nil { + return true + } + + return false +} + +// SetServiceName allocates a new s.ServiceName and returns the pointer to it. +func (s *servicePD) SetServiceName(v string) { + s.ServiceName = &v +} + +// GetServiceKey returns the ServiceKey field if non-nil, zero value otherwise. +func (s *ServicePDRequest) GetServiceKey() string { + if s == nil || s.ServiceKey == nil { + return "" + } + return *s.ServiceKey +} + +// GetOkServiceKey returns a tuple with the ServiceKey field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *ServicePDRequest) GetServiceKeyOk() (string, bool) { + if s == nil || s.ServiceKey == nil { + return "", false + } + return *s.ServiceKey, true +} + +// HasServiceKey returns a boolean if a field has been set. +func (s *ServicePDRequest) HasServiceKey() bool { + if s != nil && s.ServiceKey != nil { + return true + } + + return false +} + +// SetServiceKey allocates a new s.ServiceKey and returns the pointer to it. +func (s *ServicePDRequest) SetServiceKey(v string) { + s.ServiceKey = &v +} + +// GetServiceName returns the ServiceName field if non-nil, zero value otherwise. +func (s *ServicePDRequest) GetServiceName() string { + if s == nil || s.ServiceName == nil { + return "" + } + return *s.ServiceName +} + +// GetOkServiceName returns a tuple with the ServiceName field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *ServicePDRequest) GetServiceNameOk() (string, bool) { + if s == nil || s.ServiceName == nil { + return "", false + } + return *s.ServiceName, true +} + +// HasServiceName returns a boolean if a field has been set. +func (s *ServicePDRequest) HasServiceName() bool { + if s != nil && s.ServiceName != nil { + return true + } + + return false +} + +// SetServiceName allocates a new s.ServiceName and returns the pointer to it. +func (s *ServicePDRequest) SetServiceName(v string) { + s.ServiceName = &v +} + +// GetPalette returns the Palette field if non-nil, zero value otherwise. +func (s *Style) GetPalette() string { + if s == nil || s.Palette == nil { + return "" + } + return *s.Palette +} + +// GetOkPalette returns a tuple with the Palette field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *Style) GetPaletteOk() (string, bool) { + if s == nil || s.Palette == nil { + return "", false + } + return *s.Palette, true +} + +// HasPalette returns a boolean if a field has been set. +func (s *Style) HasPalette() bool { + if s != nil && s.Palette != nil { + return true + } + + return false +} + +// SetPalette allocates a new s.Palette and returns the pointer to it. +func (s *Style) SetPalette(v string) { + s.Palette = &v +} + +// GetPaletteFlip returns the PaletteFlip field if non-nil, zero value otherwise. +func (s *Style) GetPaletteFlip() bool { + if s == nil || s.PaletteFlip == nil { + return false + } + return *s.PaletteFlip +} + +// GetOkPaletteFlip returns a tuple with the PaletteFlip field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (s *Style) GetPaletteFlipOk() (bool, bool) { + if s == nil || s.PaletteFlip == nil { + return false, false + } + return *s.PaletteFlip, true +} + +// HasPaletteFlip returns a boolean if a field has been set. +func (s *Style) HasPaletteFlip() bool { + if s != nil && s.PaletteFlip != nil { + return true + } + + return false +} + +// SetPaletteFlip allocates a new s.PaletteFlip and returns the pointer to it. +func (s *Style) SetPaletteFlip(v bool) { + s.PaletteFlip = &v +} + +// GetDefault returns the Default field if non-nil, zero value otherwise. +func (t *TemplateVariable) GetDefault() string { + if t == nil || t.Default == nil { + return "" + } + return *t.Default +} + +// GetOkDefault returns a tuple with the Default field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TemplateVariable) GetDefaultOk() (string, bool) { + if t == nil || t.Default == nil { + return "", false + } + return *t.Default, true +} + +// HasDefault returns a boolean if a field has been set. +func (t *TemplateVariable) HasDefault() bool { + if t != nil && t.Default != nil { + return true + } + + return false +} + +// SetDefault allocates a new t.Default and returns the pointer to it. +func (t *TemplateVariable) SetDefault(v string) { + t.Default = &v +} + +// GetName returns the Name field if non-nil, zero value otherwise. +func (t *TemplateVariable) GetName() string { + if t == nil || t.Name == nil { + return "" + } + return *t.Name +} + +// GetOkName returns a tuple with the Name field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TemplateVariable) GetNameOk() (string, bool) { + if t == nil || t.Name == nil { + return "", false + } + return *t.Name, true +} + +// HasName returns a boolean if a field has been set. +func (t *TemplateVariable) HasName() bool { + if t != nil && t.Name != nil { + return true + } + + return false +} + +// SetName allocates a new t.Name and returns the pointer to it. +func (t *TemplateVariable) SetName(v string) { + t.Name = &v +} + +// GetPrefix returns the Prefix field if non-nil, zero value otherwise. +func (t *TemplateVariable) GetPrefix() string { + if t == nil || t.Prefix == nil { + return "" + } + return *t.Prefix +} + +// GetOkPrefix returns a tuple with the Prefix field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TemplateVariable) GetPrefixOk() (string, bool) { + if t == nil || t.Prefix == nil { + return "", false + } + return *t.Prefix, true +} + +// HasPrefix returns a boolean if a field has been set. +func (t *TemplateVariable) HasPrefix() bool { + if t != nil && t.Prefix != nil { + return true + } + + return false +} + +// SetPrefix allocates a new t.Prefix and returns the pointer to it. +func (t *TemplateVariable) SetPrefix(v string) { + t.Prefix = &v +} + +// GetAuto returns the Auto field if non-nil, zero value otherwise. +func (t *TextSize) GetAuto() bool { + if t == nil || t.Auto == nil { + return false + } + return *t.Auto +} + +// GetOkAuto returns a tuple with the Auto field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TextSize) GetAutoOk() (bool, bool) { + if t == nil || t.Auto == nil { + return false, false + } + return *t.Auto, true +} + +// HasAuto returns a boolean if a field has been set. +func (t *TextSize) HasAuto() bool { + if t != nil && t.Auto != nil { + return true + } + + return false +} + +// SetAuto allocates a new t.Auto and returns the pointer to it. +func (t *TextSize) SetAuto(v bool) { + t.Auto = &v +} + +// GetSize returns the Size field if non-nil, zero value otherwise. +func (t *TextSize) GetSize() int { + if t == nil || t.Size == nil { + return 0 + } + return *t.Size +} + +// GetOkSize returns a tuple with the Size field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TextSize) GetSizeOk() (int, bool) { + if t == nil || t.Size == nil { + return 0, false + } + return *t.Size, true +} + +// HasSize returns a boolean if a field has been set. +func (t *TextSize) HasSize() bool { + if t != nil && t.Size != nil { + return true + } + + return false +} + +// SetSize allocates a new t.Size and returns the pointer to it. +func (t *TextSize) SetSize(v int) { + t.Size = &v +} + +// GetCritical returns the Critical field if non-nil, zero value otherwise. +func (t *ThresholdCount) GetCritical() json.Number { + if t == nil || t.Critical == nil { + return "" + } + return *t.Critical +} + +// GetOkCritical returns a tuple with the Critical field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *ThresholdCount) GetCriticalOk() (json.Number, bool) { + if t == nil || t.Critical == nil { + return "", false + } + return *t.Critical, true +} + +// HasCritical returns a boolean if a field has been set. +func (t *ThresholdCount) HasCritical() bool { + if t != nil && t.Critical != nil { + return true + } + + return false +} + +// SetCritical allocates a new t.Critical and returns the pointer to it. +func (t *ThresholdCount) SetCritical(v json.Number) { + t.Critical = &v +} + +// GetCriticalRecovery returns the CriticalRecovery field if non-nil, zero value otherwise. +func (t *ThresholdCount) GetCriticalRecovery() json.Number { + if t == nil || t.CriticalRecovery == nil { + return "" + } + return *t.CriticalRecovery +} + +// GetOkCriticalRecovery returns a tuple with the CriticalRecovery field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *ThresholdCount) GetCriticalRecoveryOk() (json.Number, bool) { + if t == nil || t.CriticalRecovery == nil { + return "", false + } + return *t.CriticalRecovery, true +} + +// HasCriticalRecovery returns a boolean if a field has been set. +func (t *ThresholdCount) HasCriticalRecovery() bool { + if t != nil && t.CriticalRecovery != nil { + return true + } + + return false +} + +// SetCriticalRecovery allocates a new t.CriticalRecovery and returns the pointer to it. +func (t *ThresholdCount) SetCriticalRecovery(v json.Number) { + t.CriticalRecovery = &v +} + +// GetOk returns the Ok field if non-nil, zero value otherwise. +func (t *ThresholdCount) GetOk() json.Number { + if t == nil || t.Ok == nil { + return "" + } + return *t.Ok +} + +// GetOkOk returns a tuple with the Ok field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *ThresholdCount) GetOkOk() (json.Number, bool) { + if t == nil || t.Ok == nil { + return "", false + } + return *t.Ok, true +} + +// HasOk returns a boolean if a field has been set. +func (t *ThresholdCount) HasOk() bool { + if t != nil && t.Ok != nil { + return true + } + + return false +} + +// SetOk allocates a new t.Ok and returns the pointer to it. +func (t *ThresholdCount) SetOk(v json.Number) { + t.Ok = &v +} + +// GetUnknown returns the Unknown field if non-nil, zero value otherwise. +func (t *ThresholdCount) GetUnknown() json.Number { + if t == nil || t.Unknown == nil { + return "" + } + return *t.Unknown +} + +// GetOkUnknown returns a tuple with the Unknown field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *ThresholdCount) GetUnknownOk() (json.Number, bool) { + if t == nil || t.Unknown == nil { + return "", false + } + return *t.Unknown, true +} + +// HasUnknown returns a boolean if a field has been set. +func (t *ThresholdCount) HasUnknown() bool { + if t != nil && t.Unknown != nil { + return true + } + + return false +} + +// SetUnknown allocates a new t.Unknown and returns the pointer to it. +func (t *ThresholdCount) SetUnknown(v json.Number) { + t.Unknown = &v +} + +// GetWarning returns the Warning field if non-nil, zero value otherwise. +func (t *ThresholdCount) GetWarning() json.Number { + if t == nil || t.Warning == nil { + return "" + } + return *t.Warning +} + +// GetOkWarning returns a tuple with the Warning field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *ThresholdCount) GetWarningOk() (json.Number, bool) { + if t == nil || t.Warning == nil { + return "", false + } + return *t.Warning, true +} + +// HasWarning returns a boolean if a field has been set. +func (t *ThresholdCount) HasWarning() bool { + if t != nil && t.Warning != nil { + return true + } + + return false +} + +// SetWarning allocates a new t.Warning and returns the pointer to it. +func (t *ThresholdCount) SetWarning(v json.Number) { + t.Warning = &v +} + +// GetWarningRecovery returns the WarningRecovery field if non-nil, zero value otherwise. +func (t *ThresholdCount) GetWarningRecovery() json.Number { + if t == nil || t.WarningRecovery == nil { + return "" + } + return *t.WarningRecovery +} + +// GetOkWarningRecovery returns a tuple with the WarningRecovery field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *ThresholdCount) GetWarningRecoveryOk() (json.Number, bool) { + if t == nil || t.WarningRecovery == nil { + return "", false + } + return *t.WarningRecovery, true +} + +// HasWarningRecovery returns a boolean if a field has been set. +func (t *ThresholdCount) HasWarningRecovery() bool { + if t != nil && t.WarningRecovery != nil { + return true + } + + return false +} + +// SetWarningRecovery allocates a new t.WarningRecovery and returns the pointer to it. +func (t *ThresholdCount) SetWarningRecovery(v json.Number) { + t.WarningRecovery = &v +} + +// GetViz returns the Viz field if non-nil, zero value otherwise. +func (t *TileDef) GetViz() string { + if t == nil || t.Viz == nil { + return "" + } + return *t.Viz +} + +// GetOkViz returns a tuple with the Viz field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TileDef) GetVizOk() (string, bool) { + if t == nil || t.Viz == nil { + return "", false + } + return *t.Viz, true +} + +// HasViz returns a boolean if a field has been set. +func (t *TileDef) HasViz() bool { + if t != nil && t.Viz != nil { + return true + } + + return false +} + +// SetViz allocates a new t.Viz and returns the pointer to it. +func (t *TileDef) SetViz(v string) { + t.Viz = &v +} + +// GetQuery returns the Query field if non-nil, zero value otherwise. +func (t *TileDefEvent) GetQuery() string { + if t == nil || t.Query == nil { + return "" + } + return *t.Query +} + +// GetOkQuery returns a tuple with the Query field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TileDefEvent) GetQueryOk() (string, bool) { + if t == nil || t.Query == nil { + return "", false + } + return *t.Query, true +} + +// HasQuery returns a boolean if a field has been set. +func (t *TileDefEvent) HasQuery() bool { + if t != nil && t.Query != nil { + return true + } + + return false +} + +// SetQuery allocates a new t.Query and returns the pointer to it. +func (t *TileDefEvent) SetQuery(v string) { + t.Query = &v +} + +// GetLabel returns the Label field if non-nil, zero value otherwise. +func (t *TimeseriesMarker) GetLabel() string { + if t == nil || t.Label == nil { + return "" + } + return *t.Label +} + +// GetOkLabel returns a tuple with the Label field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TimeseriesMarker) GetLabelOk() (string, bool) { + if t == nil || t.Label == nil { + return "", false + } + return *t.Label, true +} + +// HasLabel returns a boolean if a field has been set. +func (t *TimeseriesMarker) HasLabel() bool { + if t != nil && t.Label != nil { + return true + } + + return false +} + +// SetLabel allocates a new t.Label and returns the pointer to it. +func (t *TimeseriesMarker) SetLabel(v string) { + t.Label = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (t *TimeseriesMarker) GetType() string { + if t == nil || t.Type == nil { + return "" + } + return *t.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TimeseriesMarker) GetTypeOk() (string, bool) { + if t == nil || t.Type == nil { + return "", false + } + return *t.Type, true +} + +// HasType returns a boolean if a field has been set. +func (t *TimeseriesMarker) HasType() bool { + if t != nil && t.Type != nil { + return true + } + + return false +} + +// SetType allocates a new t.Type and returns the pointer to it. +func (t *TimeseriesMarker) SetType(v string) { + t.Type = &v +} + +// GetValue returns the Value field if non-nil, zero value otherwise. +func (t *TimeseriesMarker) GetValue() string { + if t == nil || t.Value == nil { + return "" + } + return *t.Value +} + +// GetOkValue returns a tuple with the Value field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TimeseriesMarker) GetValueOk() (string, bool) { + if t == nil || t.Value == nil { + return "", false + } + return *t.Value, true +} + +// HasValue returns a boolean if a field has been set. +func (t *TimeseriesMarker) HasValue() bool { + if t != nil && t.Value != nil { + return true + } + + return false +} + +// SetValue allocates a new t.Value and returns the pointer to it. +func (t *TimeseriesMarker) SetValue(v string) { + t.Value = &v +} + +// GetQuery returns the Query field if non-nil, zero value otherwise. +func (t *TimeseriesRequest) GetQuery() string { + if t == nil || t.Query == nil { + return "" + } + return *t.Query +} + +// GetOkQuery returns a tuple with the Query field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TimeseriesRequest) GetQueryOk() (string, bool) { + if t == nil || t.Query == nil { + return "", false + } + return *t.Query, true +} + +// HasQuery returns a boolean if a field has been set. +func (t *TimeseriesRequest) HasQuery() bool { + if t != nil && t.Query != nil { + return true + } + + return false +} + +// SetQuery allocates a new t.Query and returns the pointer to it. +func (t *TimeseriesRequest) SetQuery(v string) { + t.Query = &v +} + +// GetStyle returns the Style field if non-nil, zero value otherwise. +func (t *TimeseriesRequest) GetStyle() TimeseriesRequestStyle { + if t == nil || t.Style == nil { + return TimeseriesRequestStyle{} + } + return *t.Style +} + +// GetOkStyle returns a tuple with the Style field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TimeseriesRequest) GetStyleOk() (TimeseriesRequestStyle, bool) { + if t == nil || t.Style == nil { + return TimeseriesRequestStyle{}, false + } + return *t.Style, true +} + +// HasStyle returns a boolean if a field has been set. +func (t *TimeseriesRequest) HasStyle() bool { + if t != nil && t.Style != nil { + return true + } + + return false +} + +// SetStyle allocates a new t.Style and returns the pointer to it. +func (t *TimeseriesRequest) SetStyle(v TimeseriesRequestStyle) { + t.Style = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (t *TimeseriesRequest) GetType() string { + if t == nil || t.Type == nil { + return "" + } + return *t.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TimeseriesRequest) GetTypeOk() (string, bool) { + if t == nil || t.Type == nil { + return "", false + } + return *t.Type, true +} + +// HasType returns a boolean if a field has been set. +func (t *TimeseriesRequest) HasType() bool { + if t != nil && t.Type != nil { + return true + } + + return false +} + +// SetType allocates a new t.Type and returns the pointer to it. +func (t *TimeseriesRequest) SetType(v string) { + t.Type = &v +} + +// GetPalette returns the Palette field if non-nil, zero value otherwise. +func (t *TimeseriesRequestStyle) GetPalette() string { + if t == nil || t.Palette == nil { + return "" + } + return *t.Palette +} + +// GetOkPalette returns a tuple with the Palette field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TimeseriesRequestStyle) GetPaletteOk() (string, bool) { + if t == nil || t.Palette == nil { + return "", false + } + return *t.Palette, true +} + +// HasPalette returns a boolean if a field has been set. +func (t *TimeseriesRequestStyle) HasPalette() bool { + if t != nil && t.Palette != nil { + return true + } + + return false +} + +// SetPalette allocates a new t.Palette and returns the pointer to it. +func (t *TimeseriesRequestStyle) SetPalette(v string) { + t.Palette = &v +} + +// GetHeight returns the Height field if non-nil, zero value otherwise. +func (t *TimeseriesWidget) GetHeight() int { + if t == nil || t.Height == nil { + return 0 + } + return *t.Height +} + +// GetOkHeight returns a tuple with the Height field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TimeseriesWidget) GetHeightOk() (int, bool) { + if t == nil || t.Height == nil { + return 0, false + } + return *t.Height, true +} + +// HasHeight returns a boolean if a field has been set. +func (t *TimeseriesWidget) HasHeight() bool { + if t != nil && t.Height != nil { + return true + } + + return false +} + +// SetHeight allocates a new t.Height and returns the pointer to it. +func (t *TimeseriesWidget) SetHeight(v int) { + t.Height = &v +} + +// GetLegend returns the Legend field if non-nil, zero value otherwise. +func (t *TimeseriesWidget) GetLegend() bool { + if t == nil || t.Legend == nil { + return false + } + return *t.Legend +} + +// GetOkLegend returns a tuple with the Legend field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TimeseriesWidget) GetLegendOk() (bool, bool) { + if t == nil || t.Legend == nil { + return false, false + } + return *t.Legend, true +} + +// HasLegend returns a boolean if a field has been set. +func (t *TimeseriesWidget) HasLegend() bool { + if t != nil && t.Legend != nil { + return true + } + + return false +} + +// SetLegend allocates a new t.Legend and returns the pointer to it. +func (t *TimeseriesWidget) SetLegend(v bool) { + t.Legend = &v +} + +// GetTileDef returns the TileDef field if non-nil, zero value otherwise. +func (t *TimeseriesWidget) GetTileDef() TileDef { + if t == nil || t.TileDef == nil { + return TileDef{} + } + return *t.TileDef +} + +// GetOkTileDef returns a tuple with the TileDef field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TimeseriesWidget) GetTileDefOk() (TileDef, bool) { + if t == nil || t.TileDef == nil { + return TileDef{}, false + } + return *t.TileDef, true +} + +// HasTileDef returns a boolean if a field has been set. +func (t *TimeseriesWidget) HasTileDef() bool { + if t != nil && t.TileDef != nil { + return true + } + + return false +} + +// SetTileDef allocates a new t.TileDef and returns the pointer to it. +func (t *TimeseriesWidget) SetTileDef(v TileDef) { + t.TileDef = &v +} + +// GetTimeframe returns the Timeframe field if non-nil, zero value otherwise. +func (t *TimeseriesWidget) GetTimeframe() string { + if t == nil || t.Timeframe == nil { + return "" + } + return *t.Timeframe +} + +// GetOkTimeframe returns a tuple with the Timeframe field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TimeseriesWidget) GetTimeframeOk() (string, bool) { + if t == nil || t.Timeframe == nil { + return "", false + } + return *t.Timeframe, true +} + +// HasTimeframe returns a boolean if a field has been set. +func (t *TimeseriesWidget) HasTimeframe() bool { + if t != nil && t.Timeframe != nil { + return true + } + + return false +} + +// SetTimeframe allocates a new t.Timeframe and returns the pointer to it. +func (t *TimeseriesWidget) SetTimeframe(v string) { + t.Timeframe = &v +} + +// GetTitle returns the Title field if non-nil, zero value otherwise. +func (t *TimeseriesWidget) GetTitle() bool { + if t == nil || t.Title == nil { + return false + } + return *t.Title +} + +// GetOkTitle returns a tuple with the Title field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TimeseriesWidget) GetTitleOk() (bool, bool) { + if t == nil || t.Title == nil { + return false, false + } + return *t.Title, true +} + +// HasTitle returns a boolean if a field has been set. +func (t *TimeseriesWidget) HasTitle() bool { + if t != nil && t.Title != nil { + return true + } + + return false +} + +// SetTitle allocates a new t.Title and returns the pointer to it. +func (t *TimeseriesWidget) SetTitle(v bool) { + t.Title = &v +} + +// GetTitleAlign returns the TitleAlign field if non-nil, zero value otherwise. +func (t *TimeseriesWidget) GetTitleAlign() string { + if t == nil || t.TitleAlign == nil { + return "" + } + return *t.TitleAlign +} + +// GetOkTitleAlign returns a tuple with the TitleAlign field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TimeseriesWidget) GetTitleAlignOk() (string, bool) { + if t == nil || t.TitleAlign == nil { + return "", false + } + return *t.TitleAlign, true +} + +// HasTitleAlign returns a boolean if a field has been set. +func (t *TimeseriesWidget) HasTitleAlign() bool { + if t != nil && t.TitleAlign != nil { + return true + } + + return false +} + +// SetTitleAlign allocates a new t.TitleAlign and returns the pointer to it. +func (t *TimeseriesWidget) SetTitleAlign(v string) { + t.TitleAlign = &v +} + +// GetTitleSize returns the TitleSize field if non-nil, zero value otherwise. +func (t *TimeseriesWidget) GetTitleSize() TextSize { + if t == nil || t.TitleSize == nil { + return TextSize{} + } + return *t.TitleSize +} + +// GetOkTitleSize returns a tuple with the TitleSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TimeseriesWidget) GetTitleSizeOk() (TextSize, bool) { + if t == nil || t.TitleSize == nil { + return TextSize{}, false + } + return *t.TitleSize, true +} + +// HasTitleSize returns a boolean if a field has been set. +func (t *TimeseriesWidget) HasTitleSize() bool { + if t != nil && t.TitleSize != nil { + return true + } + + return false +} + +// SetTitleSize allocates a new t.TitleSize and returns the pointer to it. +func (t *TimeseriesWidget) SetTitleSize(v TextSize) { + t.TitleSize = &v +} + +// GetTitleText returns the TitleText field if non-nil, zero value otherwise. +func (t *TimeseriesWidget) GetTitleText() string { + if t == nil || t.TitleText == nil { + return "" + } + return *t.TitleText +} + +// GetOkTitleText returns a tuple with the TitleText field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TimeseriesWidget) GetTitleTextOk() (string, bool) { + if t == nil || t.TitleText == nil { + return "", false + } + return *t.TitleText, true +} + +// HasTitleText returns a boolean if a field has been set. +func (t *TimeseriesWidget) HasTitleText() bool { + if t != nil && t.TitleText != nil { + return true + } + + return false +} + +// SetTitleText allocates a new t.TitleText and returns the pointer to it. +func (t *TimeseriesWidget) SetTitleText(v string) { + t.TitleText = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (t *TimeseriesWidget) GetType() string { + if t == nil || t.Type == nil { + return "" + } + return *t.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TimeseriesWidget) GetTypeOk() (string, bool) { + if t == nil || t.Type == nil { + return "", false + } + return *t.Type, true +} + +// HasType returns a boolean if a field has been set. +func (t *TimeseriesWidget) HasType() bool { + if t != nil && t.Type != nil { + return true + } + + return false +} + +// SetType allocates a new t.Type and returns the pointer to it. +func (t *TimeseriesWidget) SetType(v string) { + t.Type = &v +} + +// GetWidth returns the Width field if non-nil, zero value otherwise. +func (t *TimeseriesWidget) GetWidth() int { + if t == nil || t.Width == nil { + return 0 + } + return *t.Width +} + +// GetOkWidth returns a tuple with the Width field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TimeseriesWidget) GetWidthOk() (int, bool) { + if t == nil || t.Width == nil { + return 0, false + } + return *t.Width, true +} + +// HasWidth returns a boolean if a field has been set. +func (t *TimeseriesWidget) HasWidth() bool { + if t != nil && t.Width != nil { + return true + } + + return false +} + +// SetWidth allocates a new t.Width and returns the pointer to it. +func (t *TimeseriesWidget) SetWidth(v int) { + t.Width = &v +} + +// GetX returns the X field if non-nil, zero value otherwise. +func (t *TimeseriesWidget) GetX() int { + if t == nil || t.X == nil { + return 0 + } + return *t.X +} + +// GetOkX returns a tuple with the X field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TimeseriesWidget) GetXOk() (int, bool) { + if t == nil || t.X == nil { + return 0, false + } + return *t.X, true +} + +// HasX returns a boolean if a field has been set. +func (t *TimeseriesWidget) HasX() bool { + if t != nil && t.X != nil { + return true + } + + return false +} + +// SetX allocates a new t.X and returns the pointer to it. +func (t *TimeseriesWidget) SetX(v int) { + t.X = &v +} + +// GetY returns the Y field if non-nil, zero value otherwise. +func (t *TimeseriesWidget) GetY() int { + if t == nil || t.Y == nil { + return 0 + } + return *t.Y +} + +// GetOkY returns a tuple with the Y field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *TimeseriesWidget) GetYOk() (int, bool) { + if t == nil || t.Y == nil { + return 0, false + } + return *t.Y, true +} + +// HasY returns a boolean if a field has been set. +func (t *TimeseriesWidget) HasY() bool { + if t != nil && t.Y != nil { + return true + } + + return false +} + +// SetY allocates a new t.Y and returns the pointer to it. +func (t *TimeseriesWidget) SetY(v int) { + t.Y = &v +} + +// GetHeight returns the Height field if non-nil, zero value otherwise. +func (t *ToplistWidget) GetHeight() int { + if t == nil || t.Height == nil { + return 0 + } + return *t.Height +} + +// GetOkHeight returns a tuple with the Height field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *ToplistWidget) GetHeightOk() (int, bool) { + if t == nil || t.Height == nil { + return 0, false + } + return *t.Height, true +} + +// HasHeight returns a boolean if a field has been set. +func (t *ToplistWidget) HasHeight() bool { + if t != nil && t.Height != nil { + return true + } + + return false +} + +// SetHeight allocates a new t.Height and returns the pointer to it. +func (t *ToplistWidget) SetHeight(v int) { + t.Height = &v +} + +// GetLegend returns the Legend field if non-nil, zero value otherwise. +func (t *ToplistWidget) GetLegend() bool { + if t == nil || t.Legend == nil { + return false + } + return *t.Legend +} + +// GetOkLegend returns a tuple with the Legend field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *ToplistWidget) GetLegendOk() (bool, bool) { + if t == nil || t.Legend == nil { + return false, false + } + return *t.Legend, true +} + +// HasLegend returns a boolean if a field has been set. +func (t *ToplistWidget) HasLegend() bool { + if t != nil && t.Legend != nil { + return true + } + + return false +} + +// SetLegend allocates a new t.Legend and returns the pointer to it. +func (t *ToplistWidget) SetLegend(v bool) { + t.Legend = &v +} + +// GetLegendSize returns the LegendSize field if non-nil, zero value otherwise. +func (t *ToplistWidget) GetLegendSize() int { + if t == nil || t.LegendSize == nil { + return 0 + } + return *t.LegendSize +} + +// GetOkLegendSize returns a tuple with the LegendSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *ToplistWidget) GetLegendSizeOk() (int, bool) { + if t == nil || t.LegendSize == nil { + return 0, false + } + return *t.LegendSize, true +} + +// HasLegendSize returns a boolean if a field has been set. +func (t *ToplistWidget) HasLegendSize() bool { + if t != nil && t.LegendSize != nil { + return true + } + + return false +} + +// SetLegendSize allocates a new t.LegendSize and returns the pointer to it. +func (t *ToplistWidget) SetLegendSize(v int) { + t.LegendSize = &v +} + +// GetTileDef returns the TileDef field if non-nil, zero value otherwise. +func (t *ToplistWidget) GetTileDef() TileDef { + if t == nil || t.TileDef == nil { + return TileDef{} + } + return *t.TileDef +} + +// GetOkTileDef returns a tuple with the TileDef field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *ToplistWidget) GetTileDefOk() (TileDef, bool) { + if t == nil || t.TileDef == nil { + return TileDef{}, false + } + return *t.TileDef, true +} + +// HasTileDef returns a boolean if a field has been set. +func (t *ToplistWidget) HasTileDef() bool { + if t != nil && t.TileDef != nil { + return true + } + + return false +} + +// SetTileDef allocates a new t.TileDef and returns the pointer to it. +func (t *ToplistWidget) SetTileDef(v TileDef) { + t.TileDef = &v +} + +// GetTimeframe returns the Timeframe field if non-nil, zero value otherwise. +func (t *ToplistWidget) GetTimeframe() string { + if t == nil || t.Timeframe == nil { + return "" + } + return *t.Timeframe +} + +// GetOkTimeframe returns a tuple with the Timeframe field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *ToplistWidget) GetTimeframeOk() (string, bool) { + if t == nil || t.Timeframe == nil { + return "", false + } + return *t.Timeframe, true +} + +// HasTimeframe returns a boolean if a field has been set. +func (t *ToplistWidget) HasTimeframe() bool { + if t != nil && t.Timeframe != nil { + return true + } + + return false +} + +// SetTimeframe allocates a new t.Timeframe and returns the pointer to it. +func (t *ToplistWidget) SetTimeframe(v string) { + t.Timeframe = &v +} + +// GetTitle returns the Title field if non-nil, zero value otherwise. +func (t *ToplistWidget) GetTitle() bool { + if t == nil || t.Title == nil { + return false + } + return *t.Title +} + +// GetOkTitle returns a tuple with the Title field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *ToplistWidget) GetTitleOk() (bool, bool) { + if t == nil || t.Title == nil { + return false, false + } + return *t.Title, true +} + +// HasTitle returns a boolean if a field has been set. +func (t *ToplistWidget) HasTitle() bool { + if t != nil && t.Title != nil { + return true + } + + return false +} + +// SetTitle allocates a new t.Title and returns the pointer to it. +func (t *ToplistWidget) SetTitle(v bool) { + t.Title = &v +} + +// GetTitleAlign returns the TitleAlign field if non-nil, zero value otherwise. +func (t *ToplistWidget) GetTitleAlign() string { + if t == nil || t.TitleAlign == nil { + return "" + } + return *t.TitleAlign +} + +// GetOkTitleAlign returns a tuple with the TitleAlign field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *ToplistWidget) GetTitleAlignOk() (string, bool) { + if t == nil || t.TitleAlign == nil { + return "", false + } + return *t.TitleAlign, true +} + +// HasTitleAlign returns a boolean if a field has been set. +func (t *ToplistWidget) HasTitleAlign() bool { + if t != nil && t.TitleAlign != nil { + return true + } + + return false +} + +// SetTitleAlign allocates a new t.TitleAlign and returns the pointer to it. +func (t *ToplistWidget) SetTitleAlign(v string) { + t.TitleAlign = &v +} + +// GetTitleSize returns the TitleSize field if non-nil, zero value otherwise. +func (t *ToplistWidget) GetTitleSize() TextSize { + if t == nil || t.TitleSize == nil { + return TextSize{} + } + return *t.TitleSize +} + +// GetOkTitleSize returns a tuple with the TitleSize field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *ToplistWidget) GetTitleSizeOk() (TextSize, bool) { + if t == nil || t.TitleSize == nil { + return TextSize{}, false + } + return *t.TitleSize, true +} + +// HasTitleSize returns a boolean if a field has been set. +func (t *ToplistWidget) HasTitleSize() bool { + if t != nil && t.TitleSize != nil { + return true + } + + return false +} + +// SetTitleSize allocates a new t.TitleSize and returns the pointer to it. +func (t *ToplistWidget) SetTitleSize(v TextSize) { + t.TitleSize = &v +} + +// GetTitleText returns the TitleText field if non-nil, zero value otherwise. +func (t *ToplistWidget) GetTitleText() string { + if t == nil || t.TitleText == nil { + return "" + } + return *t.TitleText +} + +// GetOkTitleText returns a tuple with the TitleText field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *ToplistWidget) GetTitleTextOk() (string, bool) { + if t == nil || t.TitleText == nil { + return "", false + } + return *t.TitleText, true +} + +// HasTitleText returns a boolean if a field has been set. +func (t *ToplistWidget) HasTitleText() bool { + if t != nil && t.TitleText != nil { + return true + } + + return false +} + +// SetTitleText allocates a new t.TitleText and returns the pointer to it. +func (t *ToplistWidget) SetTitleText(v string) { + t.TitleText = &v +} + +// GetType returns the Type field if non-nil, zero value otherwise. +func (t *ToplistWidget) GetType() string { + if t == nil || t.Type == nil { + return "" + } + return *t.Type +} + +// GetOkType returns a tuple with the Type field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *ToplistWidget) GetTypeOk() (string, bool) { + if t == nil || t.Type == nil { + return "", false + } + return *t.Type, true +} + +// HasType returns a boolean if a field has been set. +func (t *ToplistWidget) HasType() bool { + if t != nil && t.Type != nil { + return true + } + + return false +} + +// SetType allocates a new t.Type and returns the pointer to it. +func (t *ToplistWidget) SetType(v string) { + t.Type = &v +} + +// GetWidth returns the Width field if non-nil, zero value otherwise. +func (t *ToplistWidget) GetWidth() int { + if t == nil || t.Width == nil { + return 0 + } + return *t.Width +} + +// GetOkWidth returns a tuple with the Width field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *ToplistWidget) GetWidthOk() (int, bool) { + if t == nil || t.Width == nil { + return 0, false + } + return *t.Width, true +} + +// HasWidth returns a boolean if a field has been set. +func (t *ToplistWidget) HasWidth() bool { + if t != nil && t.Width != nil { + return true + } + + return false +} + +// SetWidth allocates a new t.Width and returns the pointer to it. +func (t *ToplistWidget) SetWidth(v int) { + t.Width = &v +} + +// GetX returns the X field if non-nil, zero value otherwise. +func (t *ToplistWidget) GetX() int { + if t == nil || t.X == nil { + return 0 + } + return *t.X +} + +// GetOkX returns a tuple with the X field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *ToplistWidget) GetXOk() (int, bool) { + if t == nil || t.X == nil { + return 0, false + } + return *t.X, true +} + +// HasX returns a boolean if a field has been set. +func (t *ToplistWidget) HasX() bool { + if t != nil && t.X != nil { + return true + } + + return false +} + +// SetX allocates a new t.X and returns the pointer to it. +func (t *ToplistWidget) SetX(v int) { + t.X = &v +} + +// GetY returns the Y field if non-nil, zero value otherwise. +func (t *ToplistWidget) GetY() int { + if t == nil || t.Y == nil { + return 0 + } + return *t.Y +} + +// GetOkY returns a tuple with the Y field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (t *ToplistWidget) GetYOk() (int, bool) { + if t == nil || t.Y == nil { + return 0, false + } + return *t.Y, true +} + +// HasY returns a boolean if a field has been set. +func (t *ToplistWidget) HasY() bool { + if t != nil && t.Y != nil { + return true + } + + return false +} + +// SetY allocates a new t.Y and returns the pointer to it. +func (t *ToplistWidget) SetY(v int) { + t.Y = &v +} + +// GetAccessRole returns the AccessRole field if non-nil, zero value otherwise. +func (u *User) GetAccessRole() string { + if u == nil || u.AccessRole == nil { + return "" + } + return *u.AccessRole +} + +// GetOkAccessRole returns a tuple with the AccessRole field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (u *User) GetAccessRoleOk() (string, bool) { + if u == nil || u.AccessRole == nil { + return "", false + } + return *u.AccessRole, true +} + +// HasAccessRole returns a boolean if a field has been set. +func (u *User) HasAccessRole() bool { + if u != nil && u.AccessRole != nil { + return true + } + + return false +} + +// SetAccessRole allocates a new u.AccessRole and returns the pointer to it. +func (u *User) SetAccessRole(v string) { + u.AccessRole = &v +} + +// GetDisabled returns the Disabled field if non-nil, zero value otherwise. +func (u *User) GetDisabled() bool { + if u == nil || u.Disabled == nil { + return false + } + return *u.Disabled +} + +// GetOkDisabled returns a tuple with the Disabled field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (u *User) GetDisabledOk() (bool, bool) { + if u == nil || u.Disabled == nil { + return false, false + } + return *u.Disabled, true +} + +// HasDisabled returns a boolean if a field has been set. +func (u *User) HasDisabled() bool { + if u != nil && u.Disabled != nil { + return true + } + + return false +} + +// SetDisabled allocates a new u.Disabled and returns the pointer to it. +func (u *User) SetDisabled(v bool) { + u.Disabled = &v +} + +// GetEmail returns the Email field if non-nil, zero value otherwise. +func (u *User) GetEmail() string { + if u == nil || u.Email == nil { + return "" + } + return *u.Email +} + +// GetOkEmail returns a tuple with the Email field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (u *User) GetEmailOk() (string, bool) { + if u == nil || u.Email == nil { + return "", false + } + return *u.Email, true +} + +// HasEmail returns a boolean if a field has been set. +func (u *User) HasEmail() bool { + if u != nil && u.Email != nil { + return true + } + + return false +} + +// SetEmail allocates a new u.Email and returns the pointer to it. +func (u *User) SetEmail(v string) { + u.Email = &v +} + +// GetHandle returns the Handle field if non-nil, zero value otherwise. +func (u *User) GetHandle() string { + if u == nil || u.Handle == nil { + return "" + } + return *u.Handle +} + +// GetOkHandle returns a tuple with the Handle field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (u *User) GetHandleOk() (string, bool) { + if u == nil || u.Handle == nil { + return "", false + } + return *u.Handle, true +} + +// HasHandle returns a boolean if a field has been set. +func (u *User) HasHandle() bool { + if u != nil && u.Handle != nil { + return true + } + + return false +} + +// SetHandle allocates a new u.Handle and returns the pointer to it. +func (u *User) SetHandle(v string) { + u.Handle = &v +} + +// GetIsAdmin returns the IsAdmin field if non-nil, zero value otherwise. +func (u *User) GetIsAdmin() bool { + if u == nil || u.IsAdmin == nil { + return false + } + return *u.IsAdmin +} + +// GetOkIsAdmin returns a tuple with the IsAdmin field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (u *User) GetIsAdminOk() (bool, bool) { + if u == nil || u.IsAdmin == nil { + return false, false + } + return *u.IsAdmin, true +} + +// HasIsAdmin returns a boolean if a field has been set. +func (u *User) HasIsAdmin() bool { + if u != nil && u.IsAdmin != nil { + return true + } + + return false +} + +// SetIsAdmin allocates a new u.IsAdmin and returns the pointer to it. +func (u *User) SetIsAdmin(v bool) { + u.IsAdmin = &v +} + +// GetName returns the Name field if non-nil, zero value otherwise. +func (u *User) GetName() string { + if u == nil || u.Name == nil { + return "" + } + return *u.Name +} + +// GetOkName returns a tuple with the Name field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (u *User) GetNameOk() (string, bool) { + if u == nil || u.Name == nil { + return "", false + } + return *u.Name, true +} + +// HasName returns a boolean if a field has been set. +func (u *User) HasName() bool { + if u != nil && u.Name != nil { + return true + } + + return false +} + +// SetName allocates a new u.Name and returns the pointer to it. +func (u *User) SetName(v string) { + u.Name = &v +} + +// GetRole returns the Role field if non-nil, zero value otherwise. +func (u *User) GetRole() string { + if u == nil || u.Role == nil { + return "" + } + return *u.Role +} + +// GetOkRole returns a tuple with the Role field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (u *User) GetRoleOk() (string, bool) { + if u == nil || u.Role == nil { + return "", false + } + return *u.Role, true +} + +// HasRole returns a boolean if a field has been set. +func (u *User) HasRole() bool { + if u != nil && u.Role != nil { + return true + } + + return false +} + +// SetRole allocates a new u.Role and returns the pointer to it. +func (u *User) SetRole(v string) { + u.Role = &v +} + +// GetVerified returns the Verified field if non-nil, zero value otherwise. +func (u *User) GetVerified() bool { + if u == nil || u.Verified == nil { + return false + } + return *u.Verified +} + +// GetOkVerified returns a tuple with the Verified field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (u *User) GetVerifiedOk() (bool, bool) { + if u == nil || u.Verified == nil { + return false, false + } + return *u.Verified, true +} + +// HasVerified returns a boolean if a field has been set. +func (u *User) HasVerified() bool { + if u != nil && u.Verified != nil { + return true + } + + return false +} + +// SetVerified allocates a new u.Verified and returns the pointer to it. +func (u *User) SetVerified(v bool) { + u.Verified = &v +} + +// GetAlertGraphWidget returns the AlertGraphWidget field if non-nil, zero value otherwise. +func (w *Widget) GetAlertGraphWidget() AlertGraphWidget { + if w == nil || w.AlertGraphWidget == nil { + return AlertGraphWidget{} + } + return *w.AlertGraphWidget +} + +// GetOkAlertGraphWidget returns a tuple with the AlertGraphWidget field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (w *Widget) GetAlertGraphWidgetOk() (AlertGraphWidget, bool) { + if w == nil || w.AlertGraphWidget == nil { + return AlertGraphWidget{}, false + } + return *w.AlertGraphWidget, true +} + +// HasAlertGraphWidget returns a boolean if a field has been set. +func (w *Widget) HasAlertGraphWidget() bool { + if w != nil && w.AlertGraphWidget != nil { + return true + } + + return false +} + +// SetAlertGraphWidget allocates a new w.AlertGraphWidget and returns the pointer to it. +func (w *Widget) SetAlertGraphWidget(v AlertGraphWidget) { + w.AlertGraphWidget = &v +} + +// GetAlertValueWidget returns the AlertValueWidget field if non-nil, zero value otherwise. +func (w *Widget) GetAlertValueWidget() AlertValueWidget { + if w == nil || w.AlertValueWidget == nil { + return AlertValueWidget{} + } + return *w.AlertValueWidget +} + +// GetOkAlertValueWidget returns a tuple with the AlertValueWidget field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (w *Widget) GetAlertValueWidgetOk() (AlertValueWidget, bool) { + if w == nil || w.AlertValueWidget == nil { + return AlertValueWidget{}, false + } + return *w.AlertValueWidget, true +} + +// HasAlertValueWidget returns a boolean if a field has been set. +func (w *Widget) HasAlertValueWidget() bool { + if w != nil && w.AlertValueWidget != nil { + return true + } + + return false +} + +// SetAlertValueWidget allocates a new w.AlertValueWidget and returns the pointer to it. +func (w *Widget) SetAlertValueWidget(v AlertValueWidget) { + w.AlertValueWidget = &v +} + +// GetChangeWidget returns the ChangeWidget field if non-nil, zero value otherwise. +func (w *Widget) GetChangeWidget() ChangeWidget { + if w == nil || w.ChangeWidget == nil { + return ChangeWidget{} + } + return *w.ChangeWidget +} + +// GetOkChangeWidget returns a tuple with the ChangeWidget field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (w *Widget) GetChangeWidgetOk() (ChangeWidget, bool) { + if w == nil || w.ChangeWidget == nil { + return ChangeWidget{}, false + } + return *w.ChangeWidget, true +} + +// HasChangeWidget returns a boolean if a field has been set. +func (w *Widget) HasChangeWidget() bool { + if w != nil && w.ChangeWidget != nil { + return true + } + + return false +} + +// SetChangeWidget allocates a new w.ChangeWidget and returns the pointer to it. +func (w *Widget) SetChangeWidget(v ChangeWidget) { + w.ChangeWidget = &v +} + +// GetCheckStatusWidget returns the CheckStatusWidget field if non-nil, zero value otherwise. +func (w *Widget) GetCheckStatusWidget() CheckStatusWidget { + if w == nil || w.CheckStatusWidget == nil { + return CheckStatusWidget{} + } + return *w.CheckStatusWidget +} + +// GetOkCheckStatusWidget returns a tuple with the CheckStatusWidget field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (w *Widget) GetCheckStatusWidgetOk() (CheckStatusWidget, bool) { + if w == nil || w.CheckStatusWidget == nil { + return CheckStatusWidget{}, false + } + return *w.CheckStatusWidget, true +} + +// HasCheckStatusWidget returns a boolean if a field has been set. +func (w *Widget) HasCheckStatusWidget() bool { + if w != nil && w.CheckStatusWidget != nil { + return true + } + + return false +} + +// SetCheckStatusWidget allocates a new w.CheckStatusWidget and returns the pointer to it. +func (w *Widget) SetCheckStatusWidget(v CheckStatusWidget) { + w.CheckStatusWidget = &v +} + +// GetDefault returns the Default field if non-nil, zero value otherwise. +func (w *Widget) GetDefault() string { + if w == nil || w.Default == nil { + return "" + } + return *w.Default +} + +// GetOkDefault returns a tuple with the Default field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (w *Widget) GetDefaultOk() (string, bool) { + if w == nil || w.Default == nil { + return "", false + } + return *w.Default, true +} + +// HasDefault returns a boolean if a field has been set. +func (w *Widget) HasDefault() bool { + if w != nil && w.Default != nil { + return true + } + + return false +} + +// SetDefault allocates a new w.Default and returns the pointer to it. +func (w *Widget) SetDefault(v string) { + w.Default = &v +} + +// GetEventStreamWidget returns the EventStreamWidget field if non-nil, zero value otherwise. +func (w *Widget) GetEventStreamWidget() EventStreamWidget { + if w == nil || w.EventStreamWidget == nil { + return EventStreamWidget{} + } + return *w.EventStreamWidget +} + +// GetOkEventStreamWidget returns a tuple with the EventStreamWidget field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (w *Widget) GetEventStreamWidgetOk() (EventStreamWidget, bool) { + if w == nil || w.EventStreamWidget == nil { + return EventStreamWidget{}, false + } + return *w.EventStreamWidget, true +} + +// HasEventStreamWidget returns a boolean if a field has been set. +func (w *Widget) HasEventStreamWidget() bool { + if w != nil && w.EventStreamWidget != nil { + return true + } + + return false +} + +// SetEventStreamWidget allocates a new w.EventStreamWidget and returns the pointer to it. +func (w *Widget) SetEventStreamWidget(v EventStreamWidget) { + w.EventStreamWidget = &v +} + +// GetEventTimelineWidget returns the EventTimelineWidget field if non-nil, zero value otherwise. +func (w *Widget) GetEventTimelineWidget() EventTimelineWidget { + if w == nil || w.EventTimelineWidget == nil { + return EventTimelineWidget{} + } + return *w.EventTimelineWidget +} + +// GetOkEventTimelineWidget returns a tuple with the EventTimelineWidget field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (w *Widget) GetEventTimelineWidgetOk() (EventTimelineWidget, bool) { + if w == nil || w.EventTimelineWidget == nil { + return EventTimelineWidget{}, false + } + return *w.EventTimelineWidget, true +} + +// HasEventTimelineWidget returns a boolean if a field has been set. +func (w *Widget) HasEventTimelineWidget() bool { + if w != nil && w.EventTimelineWidget != nil { + return true + } + + return false +} + +// SetEventTimelineWidget allocates a new w.EventTimelineWidget and returns the pointer to it. +func (w *Widget) SetEventTimelineWidget(v EventTimelineWidget) { + w.EventTimelineWidget = &v +} + +// GetFreeTextWidget returns the FreeTextWidget field if non-nil, zero value otherwise. +func (w *Widget) GetFreeTextWidget() FreeTextWidget { + if w == nil || w.FreeTextWidget == nil { + return FreeTextWidget{} + } + return *w.FreeTextWidget +} + +// GetOkFreeTextWidget returns a tuple with the FreeTextWidget field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (w *Widget) GetFreeTextWidgetOk() (FreeTextWidget, bool) { + if w == nil || w.FreeTextWidget == nil { + return FreeTextWidget{}, false + } + return *w.FreeTextWidget, true +} + +// HasFreeTextWidget returns a boolean if a field has been set. +func (w *Widget) HasFreeTextWidget() bool { + if w != nil && w.FreeTextWidget != nil { + return true + } + + return false +} + +// SetFreeTextWidget allocates a new w.FreeTextWidget and returns the pointer to it. +func (w *Widget) SetFreeTextWidget(v FreeTextWidget) { + w.FreeTextWidget = &v +} + +// GetGraphWidget returns the GraphWidget field if non-nil, zero value otherwise. +func (w *Widget) GetGraphWidget() GraphWidget { + if w == nil || w.GraphWidget == nil { + return GraphWidget{} + } + return *w.GraphWidget +} + +// GetOkGraphWidget returns a tuple with the GraphWidget field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (w *Widget) GetGraphWidgetOk() (GraphWidget, bool) { + if w == nil || w.GraphWidget == nil { + return GraphWidget{}, false + } + return *w.GraphWidget, true +} + +// HasGraphWidget returns a boolean if a field has been set. +func (w *Widget) HasGraphWidget() bool { + if w != nil && w.GraphWidget != nil { + return true + } + + return false +} + +// SetGraphWidget allocates a new w.GraphWidget and returns the pointer to it. +func (w *Widget) SetGraphWidget(v GraphWidget) { + w.GraphWidget = &v +} + +// GetHostMapWidget returns the HostMapWidget field if non-nil, zero value otherwise. +func (w *Widget) GetHostMapWidget() HostMapWidget { + if w == nil || w.HostMapWidget == nil { + return HostMapWidget{} + } + return *w.HostMapWidget +} + +// GetOkHostMapWidget returns a tuple with the HostMapWidget field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (w *Widget) GetHostMapWidgetOk() (HostMapWidget, bool) { + if w == nil || w.HostMapWidget == nil { + return HostMapWidget{}, false + } + return *w.HostMapWidget, true +} + +// HasHostMapWidget returns a boolean if a field has been set. +func (w *Widget) HasHostMapWidget() bool { + if w != nil && w.HostMapWidget != nil { + return true + } + + return false +} + +// SetHostMapWidget allocates a new w.HostMapWidget and returns the pointer to it. +func (w *Widget) SetHostMapWidget(v HostMapWidget) { + w.HostMapWidget = &v +} + +// GetIFrameWidget returns the IFrameWidget field if non-nil, zero value otherwise. +func (w *Widget) GetIFrameWidget() IFrameWidget { + if w == nil || w.IFrameWidget == nil { + return IFrameWidget{} + } + return *w.IFrameWidget +} + +// GetOkIFrameWidget returns a tuple with the IFrameWidget field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (w *Widget) GetIFrameWidgetOk() (IFrameWidget, bool) { + if w == nil || w.IFrameWidget == nil { + return IFrameWidget{}, false + } + return *w.IFrameWidget, true +} + +// HasIFrameWidget returns a boolean if a field has been set. +func (w *Widget) HasIFrameWidget() bool { + if w != nil && w.IFrameWidget != nil { + return true + } + + return false +} + +// SetIFrameWidget allocates a new w.IFrameWidget and returns the pointer to it. +func (w *Widget) SetIFrameWidget(v IFrameWidget) { + w.IFrameWidget = &v +} + +// GetImageWidget returns the ImageWidget field if non-nil, zero value otherwise. +func (w *Widget) GetImageWidget() ImageWidget { + if w == nil || w.ImageWidget == nil { + return ImageWidget{} + } + return *w.ImageWidget +} + +// GetOkImageWidget returns a tuple with the ImageWidget field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (w *Widget) GetImageWidgetOk() (ImageWidget, bool) { + if w == nil || w.ImageWidget == nil { + return ImageWidget{}, false + } + return *w.ImageWidget, true +} + +// HasImageWidget returns a boolean if a field has been set. +func (w *Widget) HasImageWidget() bool { + if w != nil && w.ImageWidget != nil { + return true + } + + return false +} + +// SetImageWidget allocates a new w.ImageWidget and returns the pointer to it. +func (w *Widget) SetImageWidget(v ImageWidget) { + w.ImageWidget = &v +} + +// GetName returns the Name field if non-nil, zero value otherwise. +func (w *Widget) GetName() string { + if w == nil || w.Name == nil { + return "" + } + return *w.Name +} + +// GetOkName returns a tuple with the Name field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (w *Widget) GetNameOk() (string, bool) { + if w == nil || w.Name == nil { + return "", false + } + return *w.Name, true +} + +// HasName returns a boolean if a field has been set. +func (w *Widget) HasName() bool { + if w != nil && w.Name != nil { + return true + } + + return false +} + +// SetName allocates a new w.Name and returns the pointer to it. +func (w *Widget) SetName(v string) { + w.Name = &v +} + +// GetNoteWidget returns the NoteWidget field if non-nil, zero value otherwise. +func (w *Widget) GetNoteWidget() NoteWidget { + if w == nil || w.NoteWidget == nil { + return NoteWidget{} + } + return *w.NoteWidget +} + +// GetOkNoteWidget returns a tuple with the NoteWidget field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (w *Widget) GetNoteWidgetOk() (NoteWidget, bool) { + if w == nil || w.NoteWidget == nil { + return NoteWidget{}, false + } + return *w.NoteWidget, true +} + +// HasNoteWidget returns a boolean if a field has been set. +func (w *Widget) HasNoteWidget() bool { + if w != nil && w.NoteWidget != nil { + return true + } + + return false +} + +// SetNoteWidget allocates a new w.NoteWidget and returns the pointer to it. +func (w *Widget) SetNoteWidget(v NoteWidget) { + w.NoteWidget = &v +} + +// GetPrefix returns the Prefix field if non-nil, zero value otherwise. +func (w *Widget) GetPrefix() string { + if w == nil || w.Prefix == nil { + return "" + } + return *w.Prefix +} + +// GetOkPrefix returns a tuple with the Prefix field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (w *Widget) GetPrefixOk() (string, bool) { + if w == nil || w.Prefix == nil { + return "", false + } + return *w.Prefix, true +} + +// HasPrefix returns a boolean if a field has been set. +func (w *Widget) HasPrefix() bool { + if w != nil && w.Prefix != nil { + return true + } + + return false +} + +// SetPrefix allocates a new w.Prefix and returns the pointer to it. +func (w *Widget) SetPrefix(v string) { + w.Prefix = &v +} + +// GetQueryValueWidget returns the QueryValueWidget field if non-nil, zero value otherwise. +func (w *Widget) GetQueryValueWidget() QueryValueWidget { + if w == nil || w.QueryValueWidget == nil { + return QueryValueWidget{} + } + return *w.QueryValueWidget +} + +// GetOkQueryValueWidget returns a tuple with the QueryValueWidget field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (w *Widget) GetQueryValueWidgetOk() (QueryValueWidget, bool) { + if w == nil || w.QueryValueWidget == nil { + return QueryValueWidget{}, false + } + return *w.QueryValueWidget, true +} + +// HasQueryValueWidget returns a boolean if a field has been set. +func (w *Widget) HasQueryValueWidget() bool { + if w != nil && w.QueryValueWidget != nil { + return true + } + + return false +} + +// SetQueryValueWidget allocates a new w.QueryValueWidget and returns the pointer to it. +func (w *Widget) SetQueryValueWidget(v QueryValueWidget) { + w.QueryValueWidget = &v +} + +// GetTimeseriesWidget returns the TimeseriesWidget field if non-nil, zero value otherwise. +func (w *Widget) GetTimeseriesWidget() TimeseriesWidget { + if w == nil || w.TimeseriesWidget == nil { + return TimeseriesWidget{} + } + return *w.TimeseriesWidget +} + +// GetOkTimeseriesWidget returns a tuple with the TimeseriesWidget field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (w *Widget) GetTimeseriesWidgetOk() (TimeseriesWidget, bool) { + if w == nil || w.TimeseriesWidget == nil { + return TimeseriesWidget{}, false + } + return *w.TimeseriesWidget, true +} + +// HasTimeseriesWidget returns a boolean if a field has been set. +func (w *Widget) HasTimeseriesWidget() bool { + if w != nil && w.TimeseriesWidget != nil { + return true + } + + return false +} + +// SetTimeseriesWidget allocates a new w.TimeseriesWidget and returns the pointer to it. +func (w *Widget) SetTimeseriesWidget(v TimeseriesWidget) { + w.TimeseriesWidget = &v +} + +// GetToplistWidget returns the ToplistWidget field if non-nil, zero value otherwise. +func (w *Widget) GetToplistWidget() ToplistWidget { + if w == nil || w.ToplistWidget == nil { + return ToplistWidget{} + } + return *w.ToplistWidget +} + +// GetOkToplistWidget returns a tuple with the ToplistWidget field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (w *Widget) GetToplistWidgetOk() (ToplistWidget, bool) { + if w == nil || w.ToplistWidget == nil { + return ToplistWidget{}, false + } + return *w.ToplistWidget, true +} + +// HasToplistWidget returns a boolean if a field has been set. +func (w *Widget) HasToplistWidget() bool { + if w != nil && w.ToplistWidget != nil { + return true + } + + return false +} + +// SetToplistWidget allocates a new w.ToplistWidget and returns the pointer to it. +func (w *Widget) SetToplistWidget(v ToplistWidget) { + w.ToplistWidget = &v +} + +// GetMax returns the Max field if non-nil, zero value otherwise. +func (y *Yaxis) GetMax() float64 { + if y == nil || y.Max == nil { + return 0 + } + return *y.Max +} + +// GetOkMax returns a tuple with the Max field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (y *Yaxis) GetMaxOk() (float64, bool) { + if y == nil || y.Max == nil { + return 0, false + } + return *y.Max, true +} + +// HasMax returns a boolean if a field has been set. +func (y *Yaxis) HasMax() bool { + if y != nil && y.Max != nil { + return true + } + + return false +} + +// SetMax allocates a new y.Max and returns the pointer to it. +func (y *Yaxis) SetMax(v float64) { + y.Max = &v +} + +// GetMin returns the Min field if non-nil, zero value otherwise. +func (y *Yaxis) GetMin() float64 { + if y == nil || y.Min == nil { + return 0 + } + return *y.Min +} + +// GetOkMin returns a tuple with the Min field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (y *Yaxis) GetMinOk() (float64, bool) { + if y == nil || y.Min == nil { + return 0, false + } + return *y.Min, true +} + +// HasMin returns a boolean if a field has been set. +func (y *Yaxis) HasMin() bool { + if y != nil && y.Min != nil { + return true + } + + return false +} + +// SetMin allocates a new y.Min and returns the pointer to it. +func (y *Yaxis) SetMin(v float64) { + y.Min = &v +} + +// GetScale returns the Scale field if non-nil, zero value otherwise. +func (y *Yaxis) GetScale() string { + if y == nil || y.Scale == nil { + return "" + } + return *y.Scale +} + +// GetOkScale returns a tuple with the Scale field if it's non-nil, zero value otherwise +// and a boolean to check if the value has been set. +func (y *Yaxis) GetScaleOk() (string, bool) { + if y == nil || y.Scale == nil { + return "", false + } + return *y.Scale, true +} + +// HasScale returns a boolean if a field has been set. +func (y *Yaxis) HasScale() bool { + if y != nil && y.Scale != nil { + return true + } + + return false +} + +// SetScale allocates a new y.Scale and returns the pointer to it. +func (y *Yaxis) SetScale(v string) { + y.Scale = &v +} diff --git a/vendor/github.com/zorkian/go-datadog-api/downtimes.go b/vendor/github.com/zorkian/go-datadog-api/downtimes.go new file mode 100644 index 00000000..0e11b57a --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/downtimes.go @@ -0,0 +1,81 @@ +/* + * Datadog API for Go + * + * Please see the included LICENSE file for licensing information. + * + * Copyright 2013 by authors and contributors. + */ + +package datadog + +import ( + "fmt" +) + +type Recurrence struct { + Period *int `json:"period,omitempty"` + Type *string `json:"type,omitempty"` + UntilDate *int `json:"until_date,omitempty"` + UntilOccurrences *int `json:"until_occurrences,omitempty"` + WeekDays []string `json:"week_days,omitempty"` +} + +type Downtime struct { + Active *bool `json:"active,omitempty"` + Canceled *int `json:"canceled,omitempty"` + Disabled *bool `json:"disabled,omitempty"` + End *int `json:"end,omitempty"` + Id *int `json:"id,omitempty"` + MonitorId *int `json:"monitor_id,omitempty"` + Message *string `json:"message,omitempty"` + Recurrence *Recurrence `json:"recurrence,omitempty"` + Scope []string `json:"scope,omitempty"` + Start *int `json:"start,omitempty"` +} + +// reqDowntimes retrieves a slice of all Downtimes. +type reqDowntimes struct { + Downtimes []Downtime `json:"downtimes,omitempty"` +} + +// CreateDowntime adds a new downtme to the system. This returns a pointer +// to a Downtime so you can pass that to UpdateDowntime or CancelDowntime +// later if needed. +func (client *Client) CreateDowntime(downtime *Downtime) (*Downtime, error) { + var out Downtime + if err := client.doJsonRequest("POST", "/v1/downtime", downtime, &out); err != nil { + return nil, err + } + return &out, nil +} + +// UpdateDowntime takes a downtime that was previously retrieved through some method +// and sends it back to the server. +func (client *Client) UpdateDowntime(downtime *Downtime) error { + return client.doJsonRequest("PUT", fmt.Sprintf("/v1/downtime/%d", *downtime.Id), + downtime, nil) +} + +// Getdowntime retrieves an downtime by identifier. +func (client *Client) GetDowntime(id int) (*Downtime, error) { + var out Downtime + if err := client.doJsonRequest("GET", fmt.Sprintf("/v1/downtime/%d", id), nil, &out); err != nil { + return nil, err + } + return &out, nil +} + +// DeleteDowntime removes an downtime from the system. +func (client *Client) DeleteDowntime(id int) error { + return client.doJsonRequest("DELETE", fmt.Sprintf("/v1/downtime/%d", id), + nil, nil) +} + +// GetDowntimes returns a slice of all downtimes. +func (client *Client) GetDowntimes() ([]Downtime, error) { + var out reqDowntimes + if err := client.doJsonRequest("GET", "/v1/downtime", nil, &out.Downtimes); err != nil { + return nil, err + } + return out.Downtimes, nil +} diff --git a/vendor/github.com/zorkian/go-datadog-api/events.go b/vendor/github.com/zorkian/go-datadog-api/events.go new file mode 100644 index 00000000..0aeedef1 --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/events.go @@ -0,0 +1,87 @@ +/* + * Datadog API for Go + * + * Please see the included LICENSE file for licensing information. + * + * Copyright 2013 by authors and contributors. + */ + +package datadog + +import ( + "fmt" + "net/url" + "strconv" +) + +// Event is a single event. If this is being used to post an event, then not +// all fields will be filled out. +type Event struct { + Id *int `json:"id,omitempty"` + Title *string `json:"title,omitempty"` + Text *string `json:"text,omitempty"` + Time *int `json:"date_happened,omitempty"` // UNIX time. + Priority *string `json:"priority,omitempty"` + AlertType *string `json:"alert_type,omitempty"` + Host *string `json:"host,omitempty"` + Aggregation *string `json:"aggregation_key,omitempty"` + SourceType *string `json:"source_type_name,omitempty"` + Tags []string `json:"tags,omitempty"` + Url *string `json:"url,omitempty"` + Resource *string `json:"resource,omitempty"` + EventType *string `json:"event_type,omitempty"` +} + +// reqGetEvent is the container for receiving a single event. +type reqGetEvent struct { + Event *Event `json:"event,omitempty"` +} + +// reqGetEvents is for returning many events. +type reqGetEvents struct { + Events []Event `json:"events,omitempty"` +} + +// PostEvent takes as input an event and then posts it to the server. +func (client *Client) PostEvent(event *Event) (*Event, error) { + var out reqGetEvent + if err := client.doJsonRequest("POST", "/v1/events", event, &out); err != nil { + return nil, err + } + return out.Event, nil +} + +// GetEvent gets a single event given an identifier. +func (client *Client) GetEvent(id int) (*Event, error) { + var out reqGetEvent + if err := client.doJsonRequest("GET", fmt.Sprintf("/v1/events/%d", id), nil, &out); err != nil { + return nil, err + } + return out.Event, nil +} + +// QueryEvents returns a slice of events from the query stream. +func (client *Client) GetEvents(start, end int, + priority, sources, tags string) ([]Event, error) { + // Since this is a GET request, we need to build a query string. + vals := url.Values{} + vals.Add("start", strconv.Itoa(start)) + vals.Add("end", strconv.Itoa(end)) + if priority != "" { + vals.Add("priority", priority) + } + if sources != "" { + vals.Add("sources", sources) + } + if tags != "" { + vals.Add("tags", tags) + } + + // Now the request and response. + var out reqGetEvents + if err := client.doJsonRequest("GET", + fmt.Sprintf("/v1/events?%s", vals.Encode()), nil, &out); err != nil { + return nil, err + } + return out.Events, nil +} diff --git a/vendor/github.com/zorkian/go-datadog-api/generate.go b/vendor/github.com/zorkian/go-datadog-api/generate.go new file mode 100644 index 00000000..a2bf2fff --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/generate.go @@ -0,0 +1,3 @@ +package datadog + +//go:generate go run cmd/tools/gen-accessors.go -v diff --git a/vendor/github.com/zorkian/go-datadog-api/helpers.go b/vendor/github.com/zorkian/go-datadog-api/helpers.go new file mode 100644 index 00000000..866cdc5f --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/helpers.go @@ -0,0 +1,67 @@ +/* + * Datadog API for Go + * + * Please see the included LICENSE file for licensing information. + * + * Copyright 2017 by authors and contributors. + */ + +package datadog + +import "encoding/json" + +// Bool is a helper routine that allocates a new bool value +// to store v and returns a pointer to it. +func Bool(v bool) *bool { return &v } + +// GetBool is a helper routine that returns a boolean representing +// if a value was set, and if so, dereferences the pointer to it. +func GetBool(v *bool) (bool, bool) { + if v != nil { + return *v, true + } + + return false, false +} + +// Int is a helper routine that allocates a new int value +// to store v and returns a pointer to it. +func Int(v int) *int { return &v } + +// GetInt is a helper routine that returns a boolean representing +// if a value was set, and if so, dereferences the pointer to it. +func GetIntOk(v *int) (int, bool) { + if v != nil { + return *v, true + } + + return 0, false +} + +// String is a helper routine that allocates a new string value +// to store v and returns a pointer to it. +func String(v string) *string { return &v } + +// GetString is a helper routine that returns a boolean representing +// if a value was set, and if so, dereferences the pointer to it. +func GetStringOk(v *string) (string, bool) { + if v != nil { + return *v, true + } + + return "", false +} + +// JsonNumber is a helper routine that allocates a new string value +// to store v and returns a pointer to it. +func JsonNumber(v json.Number) *json.Number { return &v } + +// GetJsonNumber is a helper routine that returns a boolean representing +// if a value was set, and if so, dereferences the pointer to it. +func GetJsonNumberOk(v *json.Number) (json.Number, bool) { + if v != nil { + return *v, true + } + + return "", false +} diff --git a/vendor/github.com/zorkian/go-datadog-api/hosts.go b/vendor/github.com/zorkian/go-datadog-api/hosts.go new file mode 100644 index 00000000..fed7ef0e --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/hosts.go @@ -0,0 +1,33 @@ +package datadog + +type HostActionResp struct { + Action string `json:"action"` + Hostname string `json:"hostname"` + Message string `json:"message,omitempty"` +} + +type HostActionMute struct { + Message *string `json:"message,omitempty"` + EndTime *string `json:"end,omitempty"` + Override *bool `json:"override,omitempty"` +} + +// MuteHost mutes all monitors for the given host +func (client *Client) MuteHost(host string, action *HostActionMute) (*HostActionResp, error) { + var out HostActionResp + uri := "/v1/host/" + host + "/mute" + if err := client.doJsonRequest("POST", uri, action, &out); err != nil { + return nil, err + } + return &out, nil +} + +// UnmuteHost unmutes all monitors for the given host +func (client *Client) UnmuteHost(host string) (*HostActionResp, error) { + var out HostActionResp + uri := "/v1/host/" + host + "/unmute" + if err := client.doJsonRequest("POST", uri, nil, &out); err != nil { + return nil, err + } + return &out, nil +} diff --git a/vendor/github.com/zorkian/go-datadog-api/integrations.go b/vendor/github.com/zorkian/go-datadog-api/integrations.go new file mode 100644 index 00000000..c3ed2f4e --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/integrations.go @@ -0,0 +1,178 @@ +/* + * Datadog API for Go + * + * Please see the included LICENSE file for licensing information. + * + * Copyright 2018 by authors and contributors. + */ + +package datadog + +/* + PagerDuty Integration +*/ + +type servicePD struct { + ServiceName *string `json:"service_name"` + ServiceKey *string `json:"service_key"` +} + +type integrationPD struct { + Services []servicePD `json:"services"` + Subdomain *string `json:"subdomain"` + Schedules []string `json:"schedules"` + APIToken *string `json:"api_token"` +} + +// ServicePDRequest defines the Services struct that is part of the IntegrationPDRequest. +type ServicePDRequest struct { + ServiceName *string `json:"service_name"` + ServiceKey *string `json:"service_key"` +} + +// IntegrationPDRequest defines the request payload for +// creating & updating Datadog-PagerDuty integration. +type IntegrationPDRequest struct { + Services []ServicePDRequest `json:"services,omitempty"` + Subdomain *string `json:"subdomain,omitempty"` + Schedules []string `json:"schedules,omitempty"` + APIToken *string `json:"api_token,omitempty"` + RunCheck *bool `json:"run_check,omitempty"` +} + +// CreateIntegrationPD creates new PagerDuty Integrations. +// Use this if you want to setup the integration for the first time +// or to add more services/schedules. +func (client *Client) CreateIntegrationPD(pdIntegration *IntegrationPDRequest) error { + return client.doJsonRequest("POST", "/v1/integration/pagerduty", pdIntegration, nil) +} + +// UpdateIntegrationPD updates the PagerDuty Integration. +// This will replace the existing values with the new values. +func (client *Client) UpdateIntegrationPD(pdIntegration *IntegrationPDRequest) error { + return client.doJsonRequest("PUT", "/v1/integration/pagerduty", pdIntegration, nil) +} + +// GetIntegrationPD gets all the PagerDuty Integrations from the system. +func (client *Client) GetIntegrationPD() (*integrationPD, error) { + var out integrationPD + if err := client.doJsonRequest("GET", "/v1/integration/pagerduty", nil, &out); err != nil { + return nil, err + } + + return &out, nil +} + +// DeleteIntegrationPD removes the PagerDuty Integration from the system. +func (client *Client) DeleteIntegrationPD() error { + return client.doJsonRequest("DELETE", "/v1/integration/pagerduty", nil, nil) +} + +/* + Slack Integration +*/ + +// ServiceHookSlackRequest defines the ServiceHooks struct that is part of the IntegrationSlackRequest. +type ServiceHookSlackRequest struct { + Account *string `json:"account"` + Url *string `json:"url"` +} + +// ChannelSlackRequest defines the Channels struct that is part of the IntegrationSlackRequest. +type ChannelSlackRequest struct { + ChannelName *string `json:"channel_name"` + TransferAllUserComments *bool `json:"transfer_all_user_comments,omitempty,string"` + Account *string `json:"account"` +} + +// IntegrationSlackRequest defines the request payload for +// creating & updating Datadog-Slack integration. +type IntegrationSlackRequest struct { + ServiceHooks []ServiceHookSlackRequest `json:"service_hooks,omitempty"` + Channels []ChannelSlackRequest `json:"channels,omitempty"` + RunCheck *bool `json:"run_check,omitempty,string"` +} + +// CreateIntegrationSlack creates new Slack Integrations. +// Use this if you want to setup the integration for the first time +// or to add more channels. +func (client *Client) CreateIntegrationSlack(slackIntegration *IntegrationSlackRequest) error { + return client.doJsonRequest("POST", "/v1/integration/slack", slackIntegration, nil) +} + +// UpdateIntegrationSlack updates the Slack Integration. +// This will replace the existing values with the new values. +func (client *Client) UpdateIntegrationSlack(slackIntegration *IntegrationSlackRequest) error { + return client.doJsonRequest("PUT", "/v1/integration/slack", slackIntegration, nil) +} + +// GetIntegrationSlack gets all the Slack Integrations from the system. +func (client *Client) GetIntegrationSlack() (*IntegrationSlackRequest, error) { + var out IntegrationSlackRequest + if err := client.doJsonRequest("GET", "/v1/integration/slack", nil, &out); err != nil { + return nil, err + } + + return &out, nil +} + +// DeleteIntegrationSlack removes the Slack Integration from the system. +func (client *Client) DeleteIntegrationSlack() error { + return client.doJsonRequest("DELETE", "/v1/integration/slack", nil, nil) +} + +/* + AWS Integration +*/ + +// IntegrationAWSAccount defines the request payload for +// creating & updating Datadog-AWS integration. +type IntegrationAWSAccount struct { + AccountID *string `json:"account_id"` + RoleName *string `json:"role_name"` + FilterTags []string `json:"filter_tags"` + HostTags []string `json:"host_tags"` + AccountSpecificNamespaceRules map[string]bool `json:"account_specific_namespace_rules"` +} + +// IntegrationAWSAccountCreateResponse defines the response payload for +// creating & updating Datadog-AWS integration. +type IntegrationAWSAccountCreateResponse struct { + ExternalID string `json:"external_id"` +} + +type IntegrationAWSAccountGetResponse struct { + Accounts []IntegrationAWSAccount `json:"accounts"` +} + +type IntegrationAWSAccountDeleteRequest struct { + AccountID *string `json:"account_id"` + RoleName *string `json:"role_name"` +} + +// CreateIntegrationAWS adds a new AWS Account in the AWS Integrations. +// Use this if you want to setup the integration for the first time +// or to add more accounts. +func (client *Client) CreateIntegrationAWS(awsAccount *IntegrationAWSAccount) (*IntegrationAWSAccountCreateResponse, error) { + var out IntegrationAWSAccountCreateResponse + if err := client.doJsonRequest("POST", "/v1/integration/aws", awsAccount, &out); err != nil { + return nil, err + } + + return &out, nil +} + +// GetIntegrationAWS gets all the AWS Accounts in the AWS Integrations from Datadog. +func (client *Client) GetIntegrationAWS() (*[]IntegrationAWSAccount, error) { + var response IntegrationAWSAccountGetResponse + if err := client.doJsonRequest("GET", "/v1/integration/aws", nil, &response); err != nil { + return nil, err + } + + return &response.Accounts, nil +} + +// DeleteIntegrationAWS removes a specific AWS Account from the AWS Integration. +func (client *Client) DeleteIntegrationAWS(awsAccount *IntegrationAWSAccountDeleteRequest) error { + return client.doJsonRequest("DELETE", "/v1/integration/aws", awsAccount, nil) +} diff --git a/vendor/github.com/zorkian/go-datadog-api/metric_metadata.go b/vendor/github.com/zorkian/go-datadog-api/metric_metadata.go new file mode 100644 index 00000000..af203a5d --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/metric_metadata.go @@ -0,0 +1,39 @@ +/* + * Datadog API for Go + * + * Please see the included LICENSE file for licensing information. + * + * Copyright 2013 by authors and contributors. + */ + +package datadog + +import "fmt" + +// MetricMetadata allows you to edit fields of a metric's metadata. +type MetricMetadata struct { + Type *string `json:"type,omitempty"` + Description *string `json:"description,omitempty"` + ShortName *string `json:"short_name,omitempty"` + Unit *string `json:"unit,omitempty"` + PerUnit *string `json:"per_unit,omitempty"` + StatsdInterval *int `json:"statsd_interval,omitempty"` +} + +// ViewMetricMetadata allows you to get metadata about a specific metric. +func (client *Client) ViewMetricMetadata(mn string) (*MetricMetadata, error) { + var out MetricMetadata + if err := client.doJsonRequest("GET", fmt.Sprintf("/v1/metrics/%s", mn), nil, &out); err != nil { + return nil, err + } + return &out, nil +} + +// EditMetricMetadata edits the metadata for the given metric. +func (client *Client) EditMetricMetadata(mn string, mm *MetricMetadata) (*MetricMetadata, error) { + var out MetricMetadata + if err := client.doJsonRequest("PUT", fmt.Sprintf("/v1/metrics/%s", mn), mm, &out); err != nil { + return nil, err + } + return &out, nil +} diff --git a/vendor/github.com/zorkian/go-datadog-api/monitors.go b/vendor/github.com/zorkian/go-datadog-api/monitors.go new file mode 100644 index 00000000..3a97cc27 --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/monitors.go @@ -0,0 +1,177 @@ +/* + * Datadog API for Go + * + * Please see the included LICENSE file for licensing information. + * + * Copyright 2013 by authors and contributors. + */ + +package datadog + +import ( + "encoding/json" + "fmt" + "net/url" + "strconv" + "strings" +) + +type ThresholdCount struct { + Ok *json.Number `json:"ok,omitempty"` + Critical *json.Number `json:"critical,omitempty"` + Warning *json.Number `json:"warning,omitempty"` + Unknown *json.Number `json:"unknown,omitempty"` + CriticalRecovery *json.Number `json:"critical_recovery,omitempty"` + WarningRecovery *json.Number `json:"warning_recovery,omitempty"` +} + +type NoDataTimeframe int + +func (tf *NoDataTimeframe) UnmarshalJSON(data []byte) error { + s := string(data) + if s == "false" || s == "null" { + *tf = 0 + } else { + i, err := strconv.ParseInt(s, 10, 32) + if err != nil { + return err + } + *tf = NoDataTimeframe(i) + } + return nil +} + +type Options struct { + NoDataTimeframe NoDataTimeframe `json:"no_data_timeframe,omitempty"` + NotifyAudit *bool `json:"notify_audit,omitempty"` + NotifyNoData *bool `json:"notify_no_data,omitempty"` + RenotifyInterval *int `json:"renotify_interval,omitempty"` + NewHostDelay *int `json:"new_host_delay,omitempty"` + EvaluationDelay *int `json:"evaluation_delay,omitempty"` + Silenced map[string]int `json:"silenced,omitempty"` + TimeoutH *int `json:"timeout_h,omitempty"` + EscalationMessage *string `json:"escalation_message,omitempty"` + Thresholds *ThresholdCount `json:"thresholds,omitempty"` + IncludeTags *bool `json:"include_tags,omitempty"` + RequireFullWindow *bool `json:"require_full_window,omitempty"` + Locked *bool `json:"locked,omitempty"` +} + +// Monitor allows watching a metric or check that you care about, +// notifying your team when some defined threshold is exceeded +type Monitor struct { + Creator *Creator `json:"creator,omitempty"` + Id *int `json:"id,omitempty"` + Type *string `json:"type,omitempty"` + Query *string `json:"query,omitempty"` + Name *string `json:"name,omitempty"` + Message *string `json:"message,omitempty"` + OverallState *string `json:"overall_state,omitempty"` + Tags []string `json:"tags"` + Options *Options `json:"options,omitempty"` +} + +// Creator contains the creator of the monitor +type Creator struct { + Email *string `json:"email,omitempty"` + Handle *string `json:"handle,omitempty"` + Id *int `json:"id,omitempty"` + Name *string `json:"name,omitempty"` +} + +// reqMonitors receives a slice of all monitors +type reqMonitors struct { + Monitors []Monitor `json:"monitors,omitempty"` +} + +// CreateMonitor adds a new monitor to the system. This returns a pointer to a +// monitor so you can pass that to UpdateMonitor later if needed +func (client *Client) CreateMonitor(monitor *Monitor) (*Monitor, error) { + var out Monitor + // TODO: is this more pretty of frowned upon? + if err := client.doJsonRequest("POST", "/v1/monitor", monitor, &out); err != nil { + return nil, err + } + return &out, nil +} + +// UpdateMonitor takes a monitor that was previously retrieved through some method +// and sends it back to the server +func (client *Client) UpdateMonitor(monitor *Monitor) error { + return client.doJsonRequest("PUT", fmt.Sprintf("/v1/monitor/%d", *monitor.Id), + monitor, nil) +} + +// GetMonitor retrieves a monitor by identifier +func (client *Client) GetMonitor(id int) (*Monitor, error) { + var out Monitor + if err := client.doJsonRequest("GET", fmt.Sprintf("/v1/monitor/%d", id), nil, &out); err != nil { + return nil, err + } + return &out, nil +} + +// GetMonitor retrieves monitors by name +func (self *Client) GetMonitorsByName(name string) ([]Monitor, error) { + var out reqMonitors + query, err := url.ParseQuery(fmt.Sprintf("name=%v", name)) + if err != nil { + return nil, err + } + + err = self.doJsonRequest("GET", fmt.Sprintf("/v1/monitor?%v", query.Encode()), nil, &out.Monitors) + if err != nil { + return nil, err + } + return out.Monitors, nil +} + +// GetMonitor retrieves monitors by a slice of tags +func (self *Client) GetMonitorsByTags(tags []string) ([]Monitor, error) { + var out reqMonitors + query, err := url.ParseQuery(fmt.Sprintf("monitor_tags=%v", strings.Join(tags, ","))) + if err != nil { + return nil, err + } + + err = self.doJsonRequest("GET", fmt.Sprintf("/v1/monitor?%v", query.Encode()), nil, &out.Monitors) + if err != nil { + return nil, err + } + return out.Monitors, nil +} + +// DeleteMonitor removes a monitor from the system +func (client *Client) DeleteMonitor(id int) error { + return client.doJsonRequest("DELETE", fmt.Sprintf("/v1/monitor/%d", id), + nil, nil) +} + +// GetMonitors returns a slice of all monitors +func (client *Client) GetMonitors() ([]Monitor, error) { + var out reqMonitors + if err := client.doJsonRequest("GET", "/v1/monitor", nil, &out.Monitors); err != nil { + return nil, err + } + return out.Monitors, nil +} + +// MuteMonitors turns off monitoring notifications +func (client *Client) MuteMonitors() error { + return client.doJsonRequest("POST", "/v1/monitor/mute_all", nil, nil) +} + +// UnmuteMonitors turns on monitoring notifications +func (client *Client) UnmuteMonitors() error { + return client.doJsonRequest("POST", "/v1/monitor/unmute_all", nil, nil) +} + +// MuteMonitor turns off monitoring notifications for a monitor +func (client *Client) MuteMonitor(id int) error { + return client.doJsonRequest("POST", fmt.Sprintf("/v1/monitor/%d/mute", id), nil, nil) +} + +// UnmuteMonitor turns on monitoring notifications for a monitor +func (client *Client) UnmuteMonitor(id int) error { + return client.doJsonRequest("POST", fmt.Sprintf("/v1/monitor/%d/unmute", id), nil, nil) +} diff --git a/vendor/github.com/zorkian/go-datadog-api/request.go b/vendor/github.com/zorkian/go-datadog-api/request.go new file mode 100644 index 00000000..f65ac5a9 --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/request.go @@ -0,0 +1,194 @@ +/* + * Datadog API for Go + * + * Please see the included LICENSE file for licensing information. + * + * Copyright 2013 by authors and contributors. + */ + +package datadog + +import ( + "bytes" + "encoding/json" + "fmt" + "io" + "io/ioutil" + "net/http" + "net/url" + "strings" + "time" + + "github.com/cenkalti/backoff" +) + +// uriForAPI is to be called with something like "/v1/events" and it will give +// the proper request URI to be posted to. +func (client *Client) uriForAPI(api string) (string, error) { + apiBase, err := url.Parse(client.baseUrl + "/api" + api) + if err != nil { + return "", err + } + q := apiBase.Query() + q.Add("api_key", client.apiKey) + q.Add("application_key", client.appKey) + apiBase.RawQuery = q.Encode() + return apiBase.String(), nil +} + +// redactError removes api and application keys from error strings +func (client *Client) redactError(err error) error { + if err == nil { + return nil + } + errString := err.Error() + + if len(client.apiKey) > 0 { + errString = strings.Replace(errString, client.apiKey, "redacted", -1) + } + if len(client.appKey) > 0 { + errString = strings.Replace(errString, client.appKey, "redacted", -1) + } + + // Return original error if no replacements were made to keep the original, + // probably more useful error type information. + if errString == err.Error() { + return err + } + return fmt.Errorf("%s", errString) +} + +// doJsonRequest is the simplest type of request: a method on a URI that +// returns some JSON result which we unmarshal into the passed interface. It +// wraps doJsonRequestUnredacted to redact api and application keys from +// errors. +func (client *Client) doJsonRequest(method, api string, + reqbody, out interface{}) error { + if err := client.doJsonRequestUnredacted(method, api, reqbody, out); err != nil { + return client.redactError(err) + } + return nil +} + +// doJsonRequestUnredacted is the simplest type of request: a method on a URI that returns +// some JSON result which we unmarshal into the passed interface. +func (client *Client) doJsonRequestUnredacted(method, api string, + reqbody, out interface{}) error { + req, err := client.createRequest(method, api, reqbody) + if err != nil { + return err + } + + // Perform the request and retry it if it's not a POST or PUT request + var resp *http.Response + if method == "POST" || method == "PUT" { + resp, err = client.HttpClient.Do(req) + } else { + resp, err = client.doRequestWithRetries(req, client.RetryTimeout) + } + if err != nil { + return err + } + defer resp.Body.Close() + + if resp.StatusCode < 200 || resp.StatusCode > 299 { + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return err + } + return fmt.Errorf("API error %s: %s", resp.Status, body) + } + + // If they don't care about the body, then we don't care to give them one, + // so bail out because we're done. + if out == nil { + // read the response body so http conn can be reused immediately + io.Copy(ioutil.Discard, resp.Body) + return nil + } + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return err + } + + // If we got no body, by default let's just make an empty JSON dict. This + // saves us some work in other parts of the code. + if len(body) == 0 { + body = []byte{'{', '}'} + } + + return json.Unmarshal(body, &out) +} + +// doRequestWithRetries performs an HTTP request repeatedly for maxTime or until +// no error and no acceptable HTTP response code was returned. +func (client *Client) doRequestWithRetries(req *http.Request, maxTime time.Duration) (*http.Response, error) { + var ( + err error + resp *http.Response + bo = backoff.NewExponentialBackOff() + body []byte + ) + + bo.MaxElapsedTime = maxTime + + // Save the body for retries + if req.Body != nil { + body, err = ioutil.ReadAll(req.Body) + if err != nil { + return resp, err + } + } + + operation := func() error { + if body != nil { + r := bytes.NewReader(body) + req.Body = ioutil.NopCloser(r) + } + + resp, err = client.HttpClient.Do(req) + if err != nil { + return err + } + + if resp.StatusCode >= 200 && resp.StatusCode < 300 { + // 2xx all done + return nil + } else if resp.StatusCode >= 400 && resp.StatusCode < 500 { + // 4xx are not retryable + return nil + } + + return fmt.Errorf("Received HTTP status code %d", resp.StatusCode) + } + + err = backoff.Retry(operation, bo) + + return resp, err +} + +func (client *Client) createRequest(method, api string, reqbody interface{}) (*http.Request, error) { + // Handle the body if they gave us one. + var bodyReader io.Reader + if method != "GET" && reqbody != nil { + bjson, err := json.Marshal(reqbody) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(bjson) + } + + apiUrlStr, err := client.uriForAPI(api) + if err != nil { + return nil, err + } + req, err := http.NewRequest(method, apiUrlStr, bodyReader) + if err != nil { + return nil, err + } + if bodyReader != nil { + req.Header.Add("Content-Type", "application/json") + } + return req, nil +} diff --git a/vendor/github.com/zorkian/go-datadog-api/screen_widgets.go b/vendor/github.com/zorkian/go-datadog-api/screen_widgets.go new file mode 100644 index 00000000..28955bf5 --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/screen_widgets.go @@ -0,0 +1,287 @@ +package datadog + +type TextSize struct { + Size *int + Auto *bool +} + +type TileDef struct { + Events []TileDefEvent `json:"events,omitempty"` + Markers []TimeseriesMarker `json:"markers,omitempty"` + Requests []TimeseriesRequest `json:"requests,omitempty"` + Viz *string `json:"viz,omitempty"` +} + +type TimeseriesRequest struct { + Query *string `json:"q,omitempty"` + Type *string `json:"type,omitempty"` + ConditionalFormats []ConditionalFormat `json:"conditional_formats,omitempty"` + Style *TimeseriesRequestStyle `json:"style,omitempty"` +} + +type TimeseriesRequestStyle struct { + Palette *string `json:"palette,omitempty"` +} + +type TimeseriesMarker struct { + Label *string `json:"label,omitempty"` + Type *string `json:"type,omitempty"` + Value *string `json:"value,omitempty"` +} + +type TileDefEvent struct { + Query *string `json:"q"` +} + +type AlertValueWidget struct { + TitleSize *int `json:"title_size,omitempty"` + Title *bool `json:"title,omitempty"` + TitleAlign *string `json:"title_align,omitempty"` + TextAlign *string `json:"text_align,omitempty"` + TitleText *string `json:"title_text,omitempty"` + Precision *int `json:"precision,omitempty"` + AlertId *int `json:"alert_id,omitempty"` + Timeframe *string `json:"timeframe,omitempty"` + AddTimeframe *bool `json:"add_timeframe,omitempty"` + Y *int `json:"y,omitempty"` + X *int `json:"x,omitempty"` + TextSize *string `json:"text_size,omitempty"` + Height *int `json:"height,omitempty"` + Width *int `json:"width,omitempty"` + Type *string `json:"type,omitempty"` + Unit *string `json:"unit,omitempty"` +} + +type ChangeWidget struct { + TitleSize *int `json:"title_size,omitempty"` + Title *bool `json:"title,omitempty"` + TitleAlign *string `json:"title_align,omitempty"` + TitleText *string `json:"title_text,omitempty"` + Height *int `json:"height,omitempty"` + Width *int `json:"width,omitempty"` + X *int `json:"y,omitempty"` + Y *int `json:"x,omitempty"` + Aggregator *string `json:"aggregator,omitempty"` + TileDef *TileDef `json:"tile_def,omitempty"` +} + +type GraphWidget struct { + TitleSize *int `json:"title_size,omitempty"` + Title *bool `json:"title,omitempty"` + TitleAlign *string `json:"title_align,omitempty"` + TitleText *string `json:"title_text,omitempty"` + Height *int `json:"height,omitempty"` + Width *int `json:"width,omitempty"` + X *int `json:"y,omitempty"` + Y *int `json:"x,omitempty"` + Type *string `json:"type,omitempty"` + Timeframe *string `json:"timeframe,omitempty"` + LegendSize *int `json:"legend_size,omitempty"` + Legend *bool `json:"legend,omitempty"` + TileDef *TileDef `json:"tile_def,omitempty"` +} + +type EventTimelineWidget struct { + TitleSize *int `json:"title_size,omitempty"` + Title *bool `json:"title,omitempty"` + TitleAlign *string `json:"title_align,omitempty"` + TitleText *string `json:"title_text,omitempty"` + Height *int `json:"height,omitempty"` + Width *int `json:"width,omitempty"` + X *int `json:"y,omitempty"` + Y *int `json:"x,omitempty"` + Type *string `json:"type,omitempty"` + Timeframe *string `json:"timeframe,omitempty"` + Query *string `json:"query,omitempty"` +} + +type AlertGraphWidget struct { + TitleSize *int `json:"title_size,omitempty"` + VizType *string `json:"timeseries,omitempty"` + Title *bool `json:"title,omitempty"` + TitleAlign *string `json:"title_align,omitempty"` + TitleText *string `json:"title_text,omitempty"` + Height *int `json:"height,omitempty"` + Width *int `json:"width,omitempty"` + X *int `json:"y,omitempty"` + Y *int `json:"x,omitempty"` + AlertId *int `json:"alert_id,omitempty"` + Timeframe *string `json:"timeframe,omitempty"` + Type *string `json:"type,omitempty"` + AddTimeframe *bool `json:"add_timeframe,omitempty"` +} + +type HostMapWidget struct { + TitleSize *int `json:"title_size,omitempty"` + Title *bool `json:"title,omitempty"` + TitleAlign *string `json:"title_align,omitempty"` + TitleText *string `json:"title_text,omitempty"` + Height *int `json:"height,omitempty"` + Width *int `json:"width,omitempty"` + X *int `json:"y,omitempty"` + Y *int `json:"x,omitempty"` + Query *string `json:"query,omitempty"` + Timeframe *string `json:"timeframe,omitempty"` + LegendSize *int `json:"legend_size,omitempty"` + Type *string `json:"type,omitempty"` + Legend *bool `json:"legend,omitempty"` + TileDef *TileDef `json:"tile_def,omitempty"` +} + +type CheckStatusWidget struct { + TitleSize *int `json:"title_size,omitempty"` + Title *bool `json:"title,omitempty"` + TitleAlign *string `json:"title_align,omitempty"` + TextAlign *string `json:"text_align,omitempty"` + TitleText *string `json:"title_text,omitempty"` + Height *int `json:"height,omitempty"` + Width *int `json:"width,omitempty"` + X *int `json:"y,omitempty"` + Y *int `json:"x,omitempty"` + Tags *string `json:"tags,omitempty"` + Timeframe *string `json:"timeframe,omitempty"` + TextSize *string `json:"text_size,omitempty"` + Type *string `json:"type,omitempty"` + Check *string `json:"check,omitempty"` + Group *string `json:"group,omitempty"` + Grouping *string `json:"grouping,omitempty"` +} + +type IFrameWidget struct { + TitleSize *int `json:"title_size,omitempty"` + Title *bool `json:"title,omitempty"` + Url *string `json:"url,omitempty"` + TitleAlign *string `json:"title_align,omitempty"` + TitleText *string `json:"title_text,omitempty"` + Height *int `json:"height,omitempty"` + Width *int `json:"width,omitempty"` + X *int `json:"y,omitempty"` + Y *int `json:"x,omitempty"` + Type *string `json:"type,omitempty"` +} + +type NoteWidget struct { + TitleSize *int `json:"title_size,omitempty"` + Title *bool `json:"title,omitempty"` + RefreshEvery *int `json:"refresh_every,omitempty"` + TickPos *string `json:"tick_pos,omitempty"` + TitleAlign *string `json:"title_align,omitempty"` + TickEdge *string `json:"tick_edge,omitempty"` + TextAlign *string `json:"text_align,omitempty"` + TitleText *string `json:"title_text,omitempty"` + Height *int `json:"height,omitempty"` + Color *string `json:"bgcolor,omitempty"` + Html *string `json:"html,omitempty"` + Y *int `json:"y,omitempty"` + X *int `json:"x,omitempty"` + FontSize *int `json:"font_size,omitempty"` + Tick *bool `json:"tick,omitempty"` + Note *string `json:"type,omitempty"` + Width *int `json:"width,omitempty"` + AutoRefresh *bool `json:"auto_refresh,omitempty"` +} + +type TimeseriesWidget struct { + Height *int `json:"height,omitempty"` + Legend *bool `json:"legend,omitempty"` + TileDef *TileDef `json:"tile_def,omitempty"` + Timeframe *string `json:"timeframe,omitempty"` + Title *bool `json:"title,omitempty"` + TitleAlign *string `json:"title_align,omitempty"` + TitleSize *TextSize `json:"title_size,omitempty"` + TitleText *string `json:"title_text,omitempty"` + Type *string `json:"type,omitempty"` + Width *int `json:"width,omitempty"` + X *int `json:"x,omitempty"` + Y *int `json:"y,omitempty"` +} + +type QueryValueWidget struct { + Timeframe *string `json:"timeframe,omitempty"` + TimeframeAggregator *string `json:"aggr,omitempty"` + Aggregator *string `json:"aggregator,omitempty"` + CalcFunc *string `json:"calc_func,omitempty"` + ConditionalFormats []ConditionalFormat `json:"conditional_formats,omitempty"` + Height *int `json:"height,omitempty"` + IsValidQuery *bool `json:"is_valid_query,omitempty,omitempty"` + Metric *string `json:"metric,omitempty"` + MetricType *string `json:"metric_type,omitempty"` + Precision *int `json:"precision,omitempty"` + Query *string `json:"query,omitempty"` + ResultCalcFunc *string `json:"res_calc_func,omitempty"` + Tags []string `json:"tags,omitempty"` + TextAlign *string `json:"text_align,omitempty"` + TextSize *TextSize `json:"text_size,omitempty"` + Title *bool `json:"title,omitempty"` + TitleAlign *string `json:"title_align,omitempty"` + TitleSize *TextSize `json:"title_size,omitempty"` + TitleText *string `json:"title_text,omitempty"` + Type *string `json:"type,omitempty"` + Unit *string `json:"auto,omitempty"` + Width *int `json:"width,omitempty"` + X *int `json:"x,omitempty"` + Y *int `json:"y,omitempty"` +} +type ConditionalFormat struct { + Color *string `json:"color,omitempty"` + Comparator *string `json:"comparator,omitempty"` + Inverted *bool `json:"invert,omitempty"` + Value *int `json:"value,omitempty"` +} + +type ToplistWidget struct { + Height *int `json:"height,omitempty"` + Legend *bool `json:"legend,omitempty"` + LegendSize *int `json:"legend_size,omitempty"` + TileDef *TileDef `json:"tile_def,omitempty"` + Timeframe *string `json:"timeframe,omitempty"` + Title *bool `json:"title,omitempty"` + TitleAlign *string `json:"title_align,omitempty"` + TitleSize *TextSize `json:"title_size,omitempty"` + TitleText *string `json:"title_text,omitempty"` + Type *string `json:"type,omitempty"` + Width *int `json:"width,omitempty"` + X *int `json:"x,omitempty"` + Y *int `json:"y,omitempty"` +} + +type EventStreamWidget struct { + EventSize *string `json:"event_size,omitempty"` + Height *int `json:"height,omitempty"` + Query *string `json:"query,omitempty"` + Timeframe *string `json:"timeframe,omitempty"` + Title *bool `json:"title,omitempty"` + TitleAlign *string `json:"title_align,omitempty"` + TitleSize *TextSize `json:"title_size,omitempty"` + TitleText *string `json:"title_text,omitempty"` + Type *string `json:"type,omitempty"` + Width *int `json:"width,omitempty"` + X *int `json:"x,omitempty"` + Y *int `json:"y,omitempty"` +} + +type FreeTextWidget struct { + Color *string `json:"color,omitempty"` + FontSize *string `json:"font_size,omitempty"` + Height *int `json:"height,omitempty"` + Text *string `json:"text,omitempty"` + TextAlign *string `json:"text_align,omitempty"` + Type *string `json:"type,omitempty"` + Width *int `json:"width,omitempty"` + X *int `json:"x,omitempty"` + Y *int `json:"y,omitempty"` +} + +type ImageWidget struct { + Height *int `json:"height,omitempty"` + Sizing *string `json:"sizing,omitempty"` + Title *bool `json:"title,omitempty"` + TitleAlign *string `json:"title_align,omitempty"` + TitleSize *TextSize `json:"title_size,omitempty"` + TitleText *string `json:"title_text,omitempty"` + Type *string `json:"type,omitempty"` + Url *string `json:"url,omitempty"` + Width *int `json:"width,omitempty"` + X *int `json:"x,omitempty"` + Y *int `json:"y,omitempty"` +} diff --git a/vendor/github.com/zorkian/go-datadog-api/screenboards.go b/vendor/github.com/zorkian/go-datadog-api/screenboards.go new file mode 100644 index 00000000..2866fd58 --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/screenboards.go @@ -0,0 +1,116 @@ +/* + * Datadog API for Go + * + * Please see the included LICENSE file for licensing information. + * + * Copyright 2013 by authors and contributors. + */ + +package datadog + +import ( + "fmt" +) + +// Screenboard represents a user created screenboard. This is the full screenboard +// struct when we load a screenboard in detail. +type Screenboard struct { + Id *int `json:"id,omitempty"` + Title *string `json:"board_title,omitempty"` + Height *string `json:"height,omitempty"` + Width *string `json:"width,omitempty"` + Shared *bool `json:"shared,omitempty"` + Templated *bool `json:"templated,omitempty"` + TemplateVariables []TemplateVariable `json:"template_variables,omitempty"` + Widgets []Widget `json:"widgets"` + ReadOnly *bool `json:"read_only,omitempty"` +} + +//type Widget struct { +type Widget struct { + Default *string `json:"default,omitempty"` + Name *string `json:"name,omitempty"` + Prefix *string `json:"prefix,omitempty"` + TimeseriesWidget *TimeseriesWidget `json:"timeseries,omitempty"` + QueryValueWidget *QueryValueWidget `json:"query_value,omitempty"` + EventStreamWidget *EventStreamWidget `json:"event_stream,omitempty"` + FreeTextWidget *FreeTextWidget `json:"free_text,omitempty"` + ToplistWidget *ToplistWidget `json:"toplist,omitempty"` + ImageWidget *ImageWidget `json:"image,omitempty"` + ChangeWidget *ChangeWidget `json:"change,omitempty"` + GraphWidget *GraphWidget `json:"graph,omitempty"` + EventTimelineWidget *EventTimelineWidget `json:"event_timeline,omitempty"` + AlertValueWidget *AlertValueWidget `json:"alert_value,omitempty"` + AlertGraphWidget *AlertGraphWidget `json:"alert_graph,omitempty"` + HostMapWidget *HostMapWidget `json:"hostmap,omitempty"` + CheckStatusWidget *CheckStatusWidget `json:"check_status,omitempty"` + IFrameWidget *IFrameWidget `json:"iframe,omitempty"` + NoteWidget *NoteWidget `json:"frame,omitempty"` +} + +// ScreenboardLite represents a user created screenboard. This is the mini +// struct when we load the summaries. +type ScreenboardLite struct { + Id *int `json:"id,omitempty"` + Resource *string `json:"resource,omitempty"` + Title *string `json:"title,omitempty"` +} + +// reqGetScreenboards from /api/v1/screen +type reqGetScreenboards struct { + Screenboards []*ScreenboardLite `json:"screenboards,omitempty"` +} + +// GetScreenboard returns a single screenboard created on this account. +func (client *Client) GetScreenboard(id int) (*Screenboard, error) { + out := &Screenboard{} + if err := client.doJsonRequest("GET", fmt.Sprintf("/v1/screen/%d", id), nil, out); err != nil { + return nil, err + } + return out, nil +} + +// GetScreenboards returns a list of all screenboards created on this account. +func (client *Client) GetScreenboards() ([]*ScreenboardLite, error) { + var out reqGetScreenboards + if err := client.doJsonRequest("GET", "/v1/screen", nil, &out); err != nil { + return nil, err + } + return out.Screenboards, nil +} + +// DeleteScreenboard deletes a screenboard by the identifier. +func (client *Client) DeleteScreenboard(id int) error { + return client.doJsonRequest("DELETE", fmt.Sprintf("/v1/screen/%d", id), nil, nil) +} + +// CreateScreenboard creates a new screenboard when given a Screenboard struct. Note +// that the Id, Resource, Url and similar elements are not used in creation. +func (client *Client) CreateScreenboard(board *Screenboard) (*Screenboard, error) { + out := &Screenboard{} + if err := client.doJsonRequest("POST", "/v1/screen", board, out); err != nil { + return nil, err + } + return out, nil +} + +// UpdateScreenboard in essence takes a Screenboard struct and persists it back to +// the server. Use this if you've updated your local and need to push it back. +func (client *Client) UpdateScreenboard(board *Screenboard) error { + return client.doJsonRequest("PUT", fmt.Sprintf("/v1/screen/%d", *board.Id), board, nil) +} + +type ScreenShareResponse struct { + BoardId int `json:"board_id"` + PublicUrl string `json:"public_url"` +} + +// ShareScreenboard shares an existing screenboard, it takes and updates ScreenShareResponse +func (client *Client) ShareScreenboard(id int, response *ScreenShareResponse) error { + return client.doJsonRequest("POST", fmt.Sprintf("/v1/screen/share/%d", id), nil, response) +} + +// RevokeScreenboard revokes a currently shared screenboard +func (client *Client) RevokeScreenboard(id int) error { + return client.doJsonRequest("DELETE", fmt.Sprintf("/v1/screen/share/%d", id), nil, nil) +} diff --git a/vendor/github.com/zorkian/go-datadog-api/search.go b/vendor/github.com/zorkian/go-datadog-api/search.go new file mode 100644 index 00000000..a0348e46 --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/search.go @@ -0,0 +1,35 @@ +/* + * Datadog API for Go + * + * Please see the included LICENSE file for licensing information. + * + * Copyright 2013 by authors and contributors. + */ + +package datadog + +// reqSearch is the container for receiving search results. +type reqSearch struct { + Results struct { + Hosts []string `json:"hosts,omitempty"` + Metrics []string `json:"metrics,omitempty"` + } `json:"results"` +} + +// SearchHosts searches through the hosts facet, returning matching hostnames. +func (client *Client) SearchHosts(search string) ([]string, error) { + var out reqSearch + if err := client.doJsonRequest("GET", "/v1/search?q=hosts:"+search, nil, &out); err != nil { + return nil, err + } + return out.Results.Hosts, nil +} + +// SearchMetrics searches through the metrics facet, returning matching ones. +func (client *Client) SearchMetrics(search string) ([]string, error) { + var out reqSearch + if err := client.doJsonRequest("GET", "/v1/search?q=metrics:"+search, nil, &out); err != nil { + return nil, err + } + return out.Results.Metrics, nil +} diff --git a/vendor/github.com/zorkian/go-datadog-api/series.go b/vendor/github.com/zorkian/go-datadog-api/series.go new file mode 100644 index 00000000..7337dcb3 --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/series.go @@ -0,0 +1,91 @@ +/* + * Datadog API for Go + * + * Please see the included LICENSE file for licensing information. + * + * Copyright 2013 by authors and contributors. + */ + +package datadog + +import ( + "net/url" + "strconv" +) + +// DataPoint is a tuple of [UNIX timestamp, value]. This has to use floats +// because the value could be non-integer. +type DataPoint [2]*float64 + +// Metric represents a collection of data points that we might send or receive +// on one single metric line. +type Metric struct { + Metric *string `json:"metric,omitempty"` + Points []DataPoint `json:"points,omitempty"` + Type *string `json:"type,omitempty"` + Host *string `json:"host,omitempty"` + Tags []string `json:"tags,omitempty"` + Unit *string `json:"unit,omitempty"` +} + +// Unit represents a unit definition that we might receive when query for timeseries data. +type Unit struct { + Family string `json:"family"` + ScaleFactor float32 `json:"scale_factor"` + Name string `json:"name"` + ShortName string `json:"short_name"` + Plural string `json:"plural"` + Id int `json:"id"` +} + +// A Series is characterized by 2 units as: x per y +// One or both could be missing +type UnitPair []*Unit + +// Series represents a collection of data points we get when we query for timeseries data +type Series struct { + Metric *string `json:"metric,omitempty"` + DisplayName *string `json:"display_name,omitempty"` + Points []DataPoint `json:"pointlist,omitempty"` + Start *float64 `json:"start,omitempty"` + End *float64 `json:"end,omitempty"` + Interval *int `json:"interval,omitempty"` + Aggr *string `json:"aggr,omitempty"` + Length *int `json:"length,omitempty"` + Scope *string `json:"scope,omitempty"` + Expression *string `json:"expression,omitempty"` + Units *UnitPair `json:"unit,omitempty"` +} + +// reqPostSeries from /api/v1/series +type reqPostSeries struct { + Series []Metric `json:"series,omitempty"` +} + +// reqMetrics is the container for receiving metric results. +type reqMetrics struct { + Series []Series `json:"series,omitempty"` +} + +// PostMetrics takes as input a slice of metrics and then posts them up to the +// server for posting data. +func (client *Client) PostMetrics(series []Metric) error { + return client.doJsonRequest("POST", "/v1/series", + reqPostSeries{Series: series}, nil) +} + +// QueryMetrics takes as input from, to (seconds from Unix Epoch) and query string and then requests +// timeseries data for that time peried +func (client *Client) QueryMetrics(from, to int64, query string) ([]Series, error) { + v := url.Values{} + v.Add("from", strconv.FormatInt(from, 10)) + v.Add("to", strconv.FormatInt(to, 10)) + v.Add("query", query) + + var out reqMetrics + err := client.doJsonRequest("GET", "/v1/query?"+v.Encode(), nil, &out) + if err != nil { + return nil, err + } + return out.Series, nil +} diff --git a/vendor/github.com/zorkian/go-datadog-api/snapshot.go b/vendor/github.com/zorkian/go-datadog-api/snapshot.go new file mode 100644 index 00000000..cdc5e62c --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/snapshot.go @@ -0,0 +1,45 @@ +/* + * Datadog API for Go + * + * Please see the included LICENSE file for licensing information. + * + * Copyright 2016 by authors and contributors. + */ + +package datadog + +import ( + "fmt" + "net/url" + "time" +) + +func (client *Client) doSnapshotRequest(values url.Values) (string, error) { + out := struct { + SnapshotURL string `json:"snapshot_url,omitempty"` + }{} + if err := client.doJsonRequest("GET", "/v1/graph/snapshot?"+values.Encode(), nil, &out); err != nil { + return "", err + } + return out.SnapshotURL, nil +} + +// Snapshot creates an image from a graph and returns the URL of the image. +func (client *Client) Snapshot(query string, start, end time.Time, eventQuery string) (string, error) { + options := map[string]string{"metric_query": query, "event_query": eventQuery} + + return client.SnapshotGeneric(options, start, end) +} + +// Generic function for snapshots, use map[string]string to create url.Values() instead of pre-defined params +func (client *Client) SnapshotGeneric(options map[string]string, start, end time.Time) (string, error) { + v := url.Values{} + v.Add("start", fmt.Sprintf("%d", start.Unix())) + v.Add("end", fmt.Sprintf("%d", end.Unix())) + + for opt, val := range options { + v.Add(opt, val) + } + + return client.doSnapshotRequest(v) +} diff --git a/vendor/github.com/zorkian/go-datadog-api/tags.go b/vendor/github.com/zorkian/go-datadog-api/tags.go new file mode 100644 index 00000000..54daa354 --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/tags.go @@ -0,0 +1,93 @@ +/* + * Datadog API for Go + * + * Please see the included LICENSE file for licensing information. + * + * Copyright 2013 by authors and contributors. + */ + +package datadog + +// TagMap is used to receive the format given to us by the API. +type TagMap map[string][]string + +// reqGetTags is the container for receiving tags. +type reqGetTags struct { + Tags *TagMap `json:"tags,omitempty"` +} + +// regGetHostTags is for receiving a slice of tags. +type reqGetHostTags struct { + Tags []string `json:"tags,omitempty"` +} + +// GetTags returns a map of tags. +func (client *Client) GetTags(source string) (TagMap, error) { + var out reqGetTags + uri := "/v1/tags/hosts" + if source != "" { + uri += "?source=" + source + } + if err := client.doJsonRequest("GET", uri, nil, &out); err != nil { + return nil, err + } + return *out.Tags, nil +} + +// GetHostTags returns a slice of tags for a given host and source. +func (client *Client) GetHostTags(host, source string) ([]string, error) { + var out reqGetHostTags + uri := "/v1/tags/hosts/" + host + if source != "" { + uri += "?source=" + source + } + if err := client.doJsonRequest("GET", uri, nil, &out); err != nil { + return nil, err + } + return out.Tags, nil +} + +// GetHostTagsBySource is a different way of viewing the tags. It returns a map +// of source:[tag,tag]. +func (client *Client) GetHostTagsBySource(host, source string) (TagMap, error) { + var out reqGetTags + uri := "/v1/tags/hosts/" + host + "?by_source=true" + if source != "" { + uri += "&source=" + source + } + if err := client.doJsonRequest("GET", uri, nil, &out); err != nil { + return nil, err + } + return *out.Tags, nil +} + +// AddTagsToHost does exactly what it says on the tin. Given a list of tags, +// add them to the host. The source is optionally specified, and defaults to +// "users" as per the API documentation. +func (client *Client) AddTagsToHost(host, source string, tags []string) error { + uri := "/v1/tags/hosts/" + host + if source != "" { + uri += "?source=" + source + } + return client.doJsonRequest("POST", uri, reqGetHostTags{Tags: tags}, nil) +} + +// UpdateHostTags overwrites existing tags for a host, allowing you to specify +// a new set of tags for the given source. This defaults to "users". +func (client *Client) UpdateHostTags(host, source string, tags []string) error { + uri := "/v1/tags/hosts/" + host + if source != "" { + uri += "?source=" + source + } + return client.doJsonRequest("PUT", uri, reqGetHostTags{Tags: tags}, nil) +} + +// RemoveHostTags removes all tags from a host for the given source. If none is +// given, the API defaults to "users". +func (client *Client) RemoveHostTags(host, source string) error { + uri := "/v1/tags/hosts/" + host + if source != "" { + uri += "?source=" + source + } + return client.doJsonRequest("DELETE", uri, nil, nil) +} diff --git a/vendor/github.com/zorkian/go-datadog-api/users.go b/vendor/github.com/zorkian/go-datadog-api/users.go new file mode 100644 index 00000000..0a90402c --- /dev/null +++ b/vendor/github.com/zorkian/go-datadog-api/users.go @@ -0,0 +1,95 @@ +/* + * Datadog API for Go + * + * Please see the included LICENSE file for licensing information. + * + * Copyright 2013 by authors and contributors. + */ + +package datadog + +type User struct { + Handle *string `json:"handle,omitempty"` + Email *string `json:"email,omitempty"` + Name *string `json:"name,omitempty"` + Role *string `json:"role,omitempty"` + AccessRole *string `json:"access_role,omitempty"` + Verified *bool `json:"verified,omitempty"` + Disabled *bool `json:"disabled,omitempty"` + + // DEPRECATED: IsAdmin is deprecated and will be removed in the next major + // revision. For more info on why it is being removed, see discussion on + // https://github.com/zorkian/go-datadog-api/issues/126. + IsAdmin *bool `json:"is_admin,omitempty"` +} + +// reqInviteUsers contains email addresses to send invitations to. +type reqInviteUsers struct { + Emails []string `json:"emails,omitempty"` +} + +// InviteUsers takes a slice of email addresses and sends invitations to them. +func (client *Client) InviteUsers(emails []string) error { + return client.doJsonRequest("POST", "/v1/invite_users", + reqInviteUsers{Emails: emails}, nil) +} + +// CreateUser creates an user account for an email address +func (self *Client) CreateUser(handle, name *string) (*User, error) { + in := struct { + Handle *string `json:"handle"` + Name *string `json:"name"` + }{ + Handle: handle, + Name: name, + } + + out := struct { + *User `json:"user"` + }{} + if err := self.doJsonRequest("POST", "/v1/user", in, &out); err != nil { + return nil, err + } + return out.User, nil +} + +// internal type to retrieve users from the api +type usersData struct { + Users []User `json:"users,omitempty"` +} + +// GetUsers returns all user, or an error if not found +func (client *Client) GetUsers() (users []User, err error) { + var udata usersData + uri := "/v1/user" + err = client.doJsonRequest("GET", uri, nil, &udata) + users = udata.Users + return +} + +// internal type to retrieve single user from the api +type userData struct { + User User `json:"user"` +} + +// GetUser returns the user that match a handle, or an error if not found +func (client *Client) GetUser(handle string) (user User, err error) { + var udata userData + uri := "/v1/user/" + handle + err = client.doJsonRequest("GET", uri, nil, &udata) + user = udata.User + return +} + +// UpdateUser updates a user with the content of `user`, +// and returns an error if the update failed +func (client *Client) UpdateUser(user User) error { + uri := "/v1/user/" + *user.Handle + return client.doJsonRequest("PUT", uri, user, nil) +} + +// DeleteUser deletes a user and returns an error if deletion failed +func (client *Client) DeleteUser(handle string) error { + uri := "/v1/user/" + handle + return client.doJsonRequest("DELETE", uri, nil, nil) +}