diff --git a/go.work.sum b/go.work.sum index 71fcd91..7ae4e4f 100644 --- a/go.work.sum +++ b/go.work.sum @@ -252,6 +252,8 @@ github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcP github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802 h1:1BDTz0u9nC3//pOCMdNH+CiXJVYJh5UQNCOBG7jbELc= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 h1:UQUsRi8WTzhZntp5313l+CHIAT95ojUI2lpP/ExlZa4= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0/go.mod h1:Cz6ft6Dkn3Et6l2v2a9/RpN7epQ1GtDlO6lj8bEcOvw= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.30.0 h1:sBEjpZlNHzK1voKq9695PJSX2o5NEXl7/OL3coiIY0c= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.30.0/go.mod h1:P4WPRUkOhJC13W//jWpyfJNDAIpvRbAUIYLX/4jtlE0= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2 h1:+vx7roKuyA63nhn5WAunQHLTznkw5W8b1Xc0dNjp83s= github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDeC1lPdgDeDbhX8XFpy1jqjK0IBG8W5K+xYqA0w= @@ -296,6 +298,8 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7 github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk= github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/boombuler/barcode v1.0.1 h1:NDBbPmhS+EqABEs5Kg3n/5ZNjy73Pz7SIV+KCeqyXcs= github.com/bwesterb/go-ristretto v1.2.3 h1:1w53tCkGhCQ5djbat3+MH0BAQ5Kfgbt56UZQ/JMzngw= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= @@ -304,10 +308,10 @@ github.com/ccojocar/zxcvbn-go v1.0.1 h1:+sxrANSCj6CdadkcMnvde/GWU1vZiiXRbqYSCalV github.com/ccojocar/zxcvbn-go v1.0.1/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQdw6Qnz/hi60= github.com/cenkalti/backoff/v5 v5.0.2 h1:rIfFVxEf1QsI7E1ZHfp/B4DF/6QBAUhmgkxc0H7Zss8= github.com/cenkalti/backoff/v5 v5.0.2/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= +github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM= +github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/charmbracelet/glamour v0.6.0 h1:wi8fse3Y7nfcabbbDuwolqTqMQPMnVPeZhDM273bISc= github.com/charmbracelet/glamour v0.6.0/go.mod h1:taqWV4swIMMbWALc0m7AfE9JkPSU8om2538k9ITBxOc= github.com/charmbracelet/harmonica v0.2.0 h1:8NxJWRWg/bzKqqEaaeFNipOu77YR5t8aSwG4pgaUBiQ= @@ -331,12 +335,11 @@ github.com/dustinkirkland/golang-petname v0.0.0-20191129215211-8e5a1ed0cff0 h1:9 github.com/dustinkirkland/golang-petname v0.0.0-20191129215211-8e5a1ed0cff0/go.mod h1:V+Qd57rJe8gd4eiGzZyg4h54VLHmYVVw54iMnlAMrF8= github.com/envoyproxy/go-control-plane v0.13.4 h1:zEqyPVyku6IvWCFwux4x9RxkLOMUL+1vC9xUFv5l2/M= github.com/envoyproxy/go-control-plane v0.13.4/go.mod h1:kDfuBlDVsSj2MjrLEtRWtHlsWIFcGyB2RMO44Dc5GZA= +github.com/envoyproxy/go-control-plane v0.13.5-0.20251024222203-75eaa193e329/go.mod h1:Alz8LEClvR7xKsrq3qzoc4N0guvVNSS8KmSChGYr9hs= github.com/envoyproxy/go-control-plane/envoy v1.32.4 h1:jb83lalDRZSpPWW2Z7Mck/8kXZ5CQAFYVjQcdVIr83A= github.com/envoyproxy/go-control-plane/envoy v1.32.4/go.mod h1:Gzjc5k8JcJswLjAx1Zm+wSYE20UrLtt7JZMWiWQXQEw= github.com/envoyproxy/go-control-plane/ratelimit v0.1.0 h1:/G9QYbddjL25KvtKTv3an9lx6VBE2cnb8wp1vEGNYGI= github.com/envoyproxy/go-control-plane/ratelimit v0.1.0/go.mod h1:Wk+tMFAFbCXaJPzVVHnPgRKdUdwW/KdbRt94AzgRee4= -github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8= -github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= github.com/erikgeiser/promptkit v0.9.0 h1:3qL1mS/ntCrXdb8sTP/ka82CJ9kEQaGuYXNrYJkWYBc= github.com/erikgeiser/promptkit v0.9.0/go.mod h1:pU9dtogSe3Jlc2AY77EP7R4WFP/vgD4v+iImC83KsCo= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= @@ -352,6 +355,8 @@ github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1 h1:QbL/5oDUmRBzO9/Z7Seo github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4 h1:WtGNWLvXpe6ZudgnXrq0barxBImvnnJoMEhXAzcbM0I= github.com/go-jose/go-jose/v4 v4.1.1 h1:JYhSgy4mXXzAdF3nUx3ygx347LRXJRrpgyU3adRmkAI= github.com/go-jose/go-jose/v4 v4.1.1/go.mod h1:BdsZGqgdO3b6tTc6LSE56wcDbMMLuPsw5d4ZD5f94kA= +github.com/go-jose/go-jose/v4 v4.1.3 h1:CVLmWDhDVRa6Mi/IgCgaopNosCaHz7zrMeF9MlZRkrs= +github.com/go-jose/go-jose/v4 v4.1.3/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08= github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81 h1:6zl3BbBhdnMkpSj2YY30qV3gDcVBGtFgVsV3+/i+mKQ= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= @@ -381,6 +386,8 @@ github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 h1:5ZPtiqj0JL5oKWmcsq4VMaAW5ukBEgSGXEN89zeH1Jo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3/go.mod h1:ndYquD05frm2vACXE1nsccT4oJzjhw2arTS2cpUD1PI= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3 h1:NmZ1PKzSTQbuGHw9DGPFomqkkLWMC+vZCkfs+FHv1Vg= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3/go.mod h1:zQrxl1YP88HQlA6i9c63DSVPFklWpGX4OWAc9bFuaH4= github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= github.com/hashicorp/terraform-config-inspect v0.0.0-20191115094559-17f92b0546e8 h1:+RyjwU+Gnd/aTJBPZVDNm903eXVjjqhbaR4Ypx3xYyY= github.com/hashicorp/terraform-plugin-mux v0.20.0 h1:3QpBnI9uCuL0Yy2Rq/kR9cOdmOFNhw88A2GoZtk5aXM= @@ -397,6 +404,8 @@ github.com/iwahbe/helpmakego v0.3.0 h1:cT9AOWNV6tWRkTklr+bn9SCWRcCYm/Wdjwx1/PCg8 github.com/iwahbe/helpmakego v0.3.0/go.mod h1:SNrBTLB/hEwr4EzMfcoMFVBGP9wQfJzSDF6PWZn4qac= github.com/iwahbe/helpmakego v0.4.0 h1:lv+HhixKrILAvbPHkUSN/0rJpClVqdsbFDL4SZ4KrLU= github.com/iwahbe/helpmakego v0.4.0/go.mod h1:SNrBTLB/hEwr4EzMfcoMFVBGP9wQfJzSDF6PWZn4qac= +github.com/iwahbe/helpmakego v0.4.1 h1:fizj1/8u4eOGZ/s5dubIHUEzi7nviCq0vLCR3cLBH10= +github.com/iwahbe/helpmakego v0.4.1/go.mod h1:SNrBTLB/hEwr4EzMfcoMFVBGP9wQfJzSDF6PWZn4qac= github.com/iwdgo/sigintwindows v0.2.2 h1:P6oWzpvV7MrEAmhUgs+zmarrWkyL77ycZz4v7+1gYAE= github.com/iwdgo/sigintwindows v0.2.2/go.mod h1:70wPb8oz8OnxPvsj2QMUjgIVhb8hMu5TUgX8KfFl7QY= github.com/jhump/gopoet v0.1.0/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= @@ -435,6 +444,8 @@ github.com/moby/moby v28.3.3+incompatible h1:nzkZIIn9bQP9S553kNmJ+U8PBhdS2ciFWph github.com/moby/moby v28.3.3+incompatible/go.mod h1:fDXVQ6+S340veQPv35CzDahGBmHsiclFwfEygB/TWMc= github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 h1:dcztxKSvZ4Id8iPpHERQBbIJfabdt4wUm5qy3wOL2Zc= github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mxschmitt/golang-combinations v1.0.0 h1:NFoO7CSP8MUcFlHpe1YdewKwMa15dgDbaqkVLC5DUPI= github.com/mxschmitt/golang-combinations v1.0.0/go.mod h1:RbMhWvfCelHR6WROvT2bVfxJvZHoEvBj71SKe+H0MYU= github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d h1:AREM5mwr4u1ORQBMvzfzBgpsctsbQikCVpvC+tX285E= @@ -453,12 +464,20 @@ github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM github.com/pierrec/lz4/v4 v4.1.15 h1:MO0/ucJhngq7299dKLwIMtgTfbkoSPF6AoMYDd8Q4q0= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e h1:aoZm08cpOy4WuID//EZDgcC4zIxODThtZNPirFr42+A= github.com/pkg/sftp v1.13.1 h1:I2qBYMChEhIjOgazfJmV3/mZM256btk6wkCDRmW7JYs= -github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= -github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= +github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= +github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= +github.com/prometheus/common v0.67.4 h1:yR3NqWO1/UyO1w2PhUvXlGQs/PtFmoveVO0KZ4+Lvsc= +github.com/prometheus/common v0.67.4/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI= +github.com/prometheus/otlptranslator v1.0.0 h1:s0LJW/iN9dkIH+EnhiD3BlkkP5QVIUVEoIwkU+A6qos= +github.com/prometheus/otlptranslator v1.0.0/go.mod h1:vRYWnXvI6aWGpsdY/mOT/cbeVRBlPWtBNDb7kGR3uKM= +github.com/prometheus/procfs v0.19.2 h1:zUMhqEW66Ex7OXIiDkll3tl9a1ZdilUOd/F6ZXw4Vws= +github.com/prometheus/procfs v0.19.2/go.mod h1:M0aotyiemPhBCM0z5w87kL22CxfcH05ZpYlu+b4J7mw= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk= github.com/rogpeppe/fastuuid v1.2.0 h1:Ppwyp6VYCF1nvBTXL3trRso7mXMlRrw9ooo375wvi2s= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= @@ -478,6 +497,8 @@ github.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67/go.mod h1 github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ= github.com/spiffe/go-spiffe/v2 v2.5.0 h1:N2I01KCUkv1FAjZXJMwh95KK1ZIQLYbPfhaxw8WS0hE= github.com/spiffe/go-spiffe/v2 v2.5.0/go.mod h1:P+NxobPc6wXhVtINNtFjNWGBTreew1GBUCwT2wPmb7g= +github.com/spiffe/go-spiffe/v2 v2.6.0 h1:l+DolpxNWYgruGQVV0xsfeya3CsC7m8iBzDnMpsbLuo= +github.com/spiffe/go-spiffe/v2 v2.6.0/go.mod h1:gm2SeUoMZEtpnzPNs2Csc0D/gX33k1xIx7lEzqblHEs= github.com/stackitcloud/stackit-sdk-go/services/iaasalpha v0.1.21-alpha h1:m1jq6a8dbUe+suFuUNdHmM/cSehpGLUtDbK1CqLqydg= github.com/stackitcloud/stackit-sdk-go/services/iaasalpha v0.1.21-alpha/go.mod h1:Nu1b5Phsv8plgZ51+fkxPVsU91ZJ5Ayz+cthilxdmQ8= github.com/terraform-providers/terraform-provider-random v1.3.2-0.20231204135814-c6e90de46687 h1:4gT3jbJFnnGV2Liq4jziT7C4w/OOM+pkuwBGVDagRgc= @@ -498,20 +519,56 @@ github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/errs v1.4.0 h1:XNdoD/RRMKP7HD0UhJnIzUy74ISdGGxURlYG8HSWSfM= github.com/zeebo/errs v1.4.0/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= +go.opentelemetry.io/contrib/bridges/prometheus v0.64.0 h1:7TYhBCu6Xz6vDJGNtEslWZLuuX2IJ/aH50hBY4MVeUg= +go.opentelemetry.io/contrib/bridges/prometheus v0.64.0/go.mod h1:tHQctZfAe7e4PBPGyt3kae6mQFXNpj+iiDJa3ithM50= go.opentelemetry.io/contrib/detectors/gcp v1.36.0 h1:F7q2tNlCaHY9nMKHR6XH9/qkp8FktLnIcy6jJNyOCQw= go.opentelemetry.io/contrib/detectors/gcp v1.36.0/go.mod h1:IbBN8uAIIx734PTonTPxAxnjc2pQTxWNkwfstZ+6H2k= +go.opentelemetry.io/contrib/detectors/gcp v1.38.0 h1:ZoYbqX7OaA/TAikspPl3ozPI6iY6LiIY9I8cUfm+pJs= +go.opentelemetry.io/contrib/detectors/gcp v1.38.0/go.mod h1:SU+iU7nu5ud4oCb3LQOhIZ3nRLj6FNVrKgtflbaf2ts= +go.opentelemetry.io/contrib/exporters/autoexport v0.64.0 h1:9pzPj3RFyKOxBAMkM2w84LpT+rdHam1XoFA+QhARiRw= +go.opentelemetry.io/contrib/exporters/autoexport v0.64.0/go.mod h1:hlVZx1btWH0XTfXpuGX9dsquB50s+tc3fYFOO5elo2M= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.15.0 h1:W+m0g+/6v3pa5PgVf2xoFMi5YtNR06WtS7ve5pcvLtM= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.15.0/go.mod h1:JM31r0GGZ/GU94mX8hN4D8v6e40aFlUECSQ48HaLgHM= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.15.0 h1:EKpiGphOYq3CYnIe2eX9ftUkyU+Y8Dtte8OaWyHJ4+I= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.15.0/go.mod h1:nWFP7C+T8TygkTjJ7mAyEaFaE7wNfms3nV/vexZ6qt0= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.39.0 h1:cEf8jF6WbuGQWUVcqgyWtTR0kOOAWY1DYZ+UhvdmQPw= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.39.0/go.mod h1:k1lzV5n5U3HkGvTCJHraTAGJ7MqsgL1wrGwTj1Isfiw= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.39.0 h1:nKP4Z2ejtHn3yShBb+2KawiXgpn8In5cT7aO2wXuOTE= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.39.0/go.mod h1:NwjeBbNigsO4Aj9WgM0C+cKIrxsZUaRmZUO7A8I7u8o= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.36.0 h1:dNzwXjZKpMpE2JhmO+9HsPl42NIXFIFSUSSs0fiqra0= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.36.0/go.mod h1:90PoxvaEB5n6AOdZvi+yWJQoE95U8Dhhw2bSyRqnTD0= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.39.0 h1:f0cb2XPmrqn4XMy9PNliTgRKJgS5WcL/u0/WRYGz4t0= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.39.0/go.mod h1:vnakAaFckOMiMtOIhFI2MNH4FYrZzXCYxmb1LlhoGz8= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.36.0 h1:JgtbA0xkWHnTmYk7YusopJFX6uleBmAuZ8n05NEh8nQ= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.36.0/go.mod h1:179AK5aar5R3eS9FucPy6rggvU0g52cvKId8pv4+v0c= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.39.0 h1:in9O8ESIOlwJAEGTkkf34DesGRAc/Pn8qJ7k3r/42LM= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.39.0/go.mod h1:Rp0EXBm5tfnv0WL+ARyO/PHBEaEAT8UUHQ6AGJcSq6c= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.39.0 h1:Ckwye2FpXkYgiHX7fyVrN1uA/UYd9ounqqTuSNAv0k4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.39.0/go.mod h1:teIFJh5pW2y+AN7riv6IBPX2DuesS3HgP39mwOspKwU= +go.opentelemetry.io/otel/exporters/prometheus v0.61.0 h1:cCyZS4dr67d30uDyh8etKM2QyDsQ4zC9ds3bdbrVoD0= +go.opentelemetry.io/otel/exporters/prometheus v0.61.0/go.mod h1:iivMuj3xpR2DkUrUya3TPS/Z9h3dz7h01GxU+fQBRNg= +go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.15.0 h1:0BSddrtQqLEylcErkeFrJBmwFzcqfQq9+/uxfTZq+HE= +go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.15.0/go.mod h1:87sjYuAPzaRCtdd09GU5gM1U9wQLrrcYrm77mh5EBoc= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.39.0 h1:5gn2urDL/FBnK8OkCfD1j3/ER79rUuTYmCvlXBKeYL8= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.39.0/go.mod h1:0fBG6ZJxhqByfFZDwSwpZGzJU671HkwpWaNe2t4VUPI= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.39.0 h1:8UPA4IbVZxpsD76ihGOQiFml99GPAEZLohDXvqHdi6U= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.39.0/go.mod h1:MZ1T/+51uIVKlRzGw1Fo46KEWThjlCBZKl2LzY5nv4g= +go.opentelemetry.io/otel/log v0.15.0 h1:0VqVnc3MgyYd7QqNVIldC3dsLFKgazR6P3P3+ypkyDY= +go.opentelemetry.io/otel/log v0.15.0/go.mod h1:9c/G1zbyZfgu1HmQD7Qj84QMmwTp2QCQsZH1aeoWDE4= +go.opentelemetry.io/otel/sdk/log v0.15.0 h1:WgMEHOUt5gjJE93yqfqJOkRflApNif84kxoHWS9VVHE= +go.opentelemetry.io/otel/sdk/log v0.15.0/go.mod h1:qDC/FlKQCXfH5hokGsNg9aUBGMJQsrUyeOiW5u+dKBQ= go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= go.opentelemetry.io/proto/otlp v1.6.0 h1:jQjP+AQyTf+Fe7OKj/MfkDrmK4MNVtw2NpXsf9fefDI= go.opentelemetry.io/proto/otlp v1.6.0/go.mod h1:cicgGehlFuNdgZkcALOCh3VE6K/u2tAjzlRhDwmVpZc= +go.opentelemetry.io/proto/otlp v1.9.0 h1:l706jCMITVouPOqEnii2fIAuO3IVGBRPV5ICjceRb/A= +go.opentelemetry.io/proto/otlp v1.9.0/go.mod h1:xE+Cx5E/eEHw+ISFkwPLwCZefwVjY+pqKg1qcK03+/4= go.pennock.tech/tabular v1.1.3 h1:JYN3TdVkTjOWdZz2FwKcW7f69vRhPl4NAQqJ8RZAsmY= go.pennock.tech/tabular v1.1.3/go.mod h1:UzyxF5itNqTCS1ZGXfwDwbFgYj/lS+e67Fid68QOYZ0= go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs= go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= +go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U= golang.org/x/crypto v0.44.0/go.mod h1:013i+Nw79BMiQiMsOPcVCB5ZIJbYkerPrGnOa00tvmc= golang.org/x/image v0.0.0-20220302094943-723b81ca9867 h1:TcHcE0vrmgzNH1v3ppjcMGbhG5+9fMuvOmUYwNEF4q4= diff --git a/provider/cmd/pulumi-resource-stackit/bridge-metadata.json b/provider/cmd/pulumi-resource-stackit/bridge-metadata.json index b2e9608..d155761 100644 --- a/provider/cmd/pulumi-resource-stackit/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-stackit/bridge-metadata.json @@ -178,6 +178,14 @@ } } }, + "stackit_logs_access_token": { + "current": "stackit:index/logsAccessToken:LogsAccessToken", + "fields": { + "permissions": { + "maxItemsOne": false + } + } + }, "stackit_logs_instance": { "current": "stackit:index/logsInstance:LogsInstance", "fields": { @@ -840,6 +848,14 @@ } } }, + "stackit_logs_access_token": { + "current": "stackit:index/getLogsAccessToken:getLogsAccessToken", + "fields": { + "permissions": { + "maxItemsOne": false + } + } + }, "stackit_logs_instance": { "current": "stackit:index/getLogsInstance:getLogsInstance", "fields": { diff --git a/provider/cmd/pulumi-resource-stackit/schema.json b/provider/cmd/pulumi-resource-stackit/schema.json index a2ed49f..9597216 100644 --- a/provider/cmd/pulumi-resource-stackit/schema.json +++ b/provider/cmd/pulumi-resource-stackit/schema.json @@ -288,6 +288,7 @@ "nodejs": { "requiredOutputs": [ "backend", + "blockedCountries", "optimizer", "regions" ] @@ -296,6 +297,14 @@ }, "stackit:index/CdnDistributionConfigBackend:CdnDistributionConfigBackend": { "properties": { + "bucketUrl": { + "type": "string", + "description": "The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'.\n" + }, + "credentials": { + "$ref": "#/types/stackit:index/CdnDistributionConfigBackendCredentials:CdnDistributionConfigBackendCredentials", + "description": "The credentials for the bucket. Required if type is 'bucket'.\n" + }, "geofencing": { "type": "object", "additionalProperties": { @@ -304,30 +313,52 @@ "type": "string" } }, - "description": "A map of URLs to a list of countries where content is allowed.\n" + "description": "The configured type http to configure countries where content is allowed. A map of URLs to a list of countries\n" }, "originRequestHeaders": { "type": "object", "additionalProperties": { "type": "string" }, - "description": "The configured origin request headers for the backend\n" + "description": "The configured type http origin request headers for the backend\n" }, "originUrl": { "type": "string", - "description": "The configured backend type for the distribution\n" + "description": "The configured backend type http for the distribution\n" + }, + "region": { + "type": "string", + "description": "The region where the bucket is hosted. Required if type is 'bucket'.\n" }, "type": { "type": "string", - "description": "The configured backend type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e.\n" + "description": "The configured backend type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bucket`\" pulumi-lang-dotnet=\"`Bucket`\" pulumi-lang-go=\"`bucket`\" pulumi-lang-python=\"`bucket`\" pulumi-lang-yaml=\"`bucket`\" pulumi-lang-java=\"`bucket`\"\u003e`bucket`\u003c/span\u003e.\n" } }, "type": "object", "required": [ - "originUrl", "type" ] }, + "stackit:index/CdnDistributionConfigBackendCredentials:CdnDistributionConfigBackendCredentials": { + "properties": { + "accessKeyId": { + "type": "string", + "description": "The access key for the bucket. Required if type is 'bucket'.\n", + "secret": true + }, + "secretAccessKey": { + "type": "string", + "description": "The access key for the bucket. Required if type is 'bucket'.\n", + "secret": true + } + }, + "type": "object", + "required": [ + "accessKeyId", + "secretAccessKey" + ] + }, "stackit:index/CdnDistributionConfigOptimizer:CdnDistributionConfigOptimizer": { "properties": { "enabled": { @@ -1187,11 +1218,14 @@ "type": "string" }, "description": "A map of key:value. Labels to add or overwrite for each alert\n" + }, + "record": { + "type": "string", + "description": "The name of the metric. It's the identifier and must be unique in the group.\n" } }, "type": "object", "required": [ - "alert", "expression" ] }, @@ -1420,6 +1454,10 @@ }, "stackit:index/ObservabilityInstanceAlertConfigRoute:ObservabilityInstanceAlertConfigRoute": { "properties": { + "continue": { + "type": "boolean", + "description": "Whether an alert should continue matching subsequent sibling nodes.\n" + }, "groupBies": { "type": "array", "items": { @@ -1458,6 +1496,7 @@ "language": { "nodejs": { "requiredOutputs": [ + "continue", "groupInterval", "groupWait", "receiver", @@ -2676,6 +2715,10 @@ }, "stackit:index/getCdnDistributionConfigBackend:getCdnDistributionConfigBackend": { "properties": { + "bucketUrl": { + "type": "string", + "description": "The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'.\n" + }, "geofencing": { "type": "object", "additionalProperties": { @@ -2684,29 +2727,35 @@ "type": "string" } }, - "description": "A map of URLs to a list of countries where content is allowed.\n" + "description": "The configured type http to configure countries where content is allowed. A map of URLs to a list of countries\n" }, "originRequestHeaders": { "type": "object", "additionalProperties": { "type": "string" }, - "description": "The configured origin request headers for the backend\n" + "description": "The configured type http origin request headers for the backend\n" }, "originUrl": { "type": "string", - "description": "The configured backend type for the distribution\n" + "description": "The configured backend type http for the distribution\n" + }, + "region": { + "type": "string", + "description": "The region where the bucket is hosted. Required if type is 'bucket'.\n" }, "type": { "type": "string", - "description": "The configured backend type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e.\n" + "description": "The configured backend type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bucket`\" pulumi-lang-dotnet=\"`Bucket`\" pulumi-lang-go=\"`bucket`\" pulumi-lang-python=\"`bucket`\" pulumi-lang-yaml=\"`bucket`\" pulumi-lang-java=\"`bucket`\"\u003e`bucket`\u003c/span\u003e.\n" } }, "type": "object", "required": [ + "bucketUrl", "geofencing", "originRequestHeaders", "originUrl", + "region", "type" ], "language": { @@ -3813,6 +3862,10 @@ "type": "string" }, "description": "A map of key:value. Labels to add or overwrite for each alert\n" + }, + "record": { + "type": "string", + "description": "The name of the metric. It's the identifier and must be unique in the group.\n" } }, "type": "object", @@ -3821,7 +3874,8 @@ "annotations", "expression", "for", - "labels" + "labels", + "record" ], "language": { "nodejs": { @@ -4074,6 +4128,10 @@ }, "stackit:index/getObservabilityInstanceAlertConfigRoute:getObservabilityInstanceAlertConfigRoute": { "properties": { + "continue": { + "type": "boolean", + "description": "Whether an alert should continue matching subsequent sibling nodes.\n" + }, "groupBies": { "type": "array", "items": { @@ -4107,6 +4165,7 @@ }, "type": "object", "required": [ + "continue", "groupBies", "groupInterval", "groupWait", @@ -6495,7 +6554,7 @@ } }, "stackit:index/cdnDistribution:CdnDistribution": { - "description": "CDN distribution data source schema.\n\n\u003e This resource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.\n\n## Example Usage\n\n```terraform\nresource \"stackit_cdn_distribution\" \"example_distribution\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n config = {\n backend = {\n type = \"http\"\n origin_url = \"https://mybackend.onstackit.cloud\"\n geofencing = {\n \"https://mybackend.onstackit.cloud\" = [\"DE\"]\n }\n }\n regions = [\"EU\", \"US\", \"ASIA\", \"AF\", \"SA\"]\n blocked_countries = [\"DE\", \"AT\", \"CH\"]\n\n optimizer = {\n enabled = true\n }\n }\n}\n\n# Only use the import statement, if you want to import an existing cdn distribution\nimport {\n to = stackit_cdn_distribution.import-example\n id = \"${var.project_id},${var.distribution_id}\"\n}\n```\n", + "description": "CDN distribution data source schema.\n\n\u003e This resource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.\n\n## Example Usage\n\n```terraform\nresource \"stackit_cdn_distribution\" \"example_distribution\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n config = {\n backend = {\n type = \"http\"\n origin_url = \"https://mybackend.onstackit.cloud\"\n geofencing = {\n \"https://mybackend.onstackit.cloud\" = [\"DE\"]\n }\n }\n regions = [\"EU\", \"US\", \"ASIA\", \"AF\", \"SA\"]\n blocked_countries = [\"DE\", \"AT\", \"CH\"]\n\n optimizer = {\n enabled = true\n }\n }\n}\n\nresource \"stackit_cdn_distribution\" \"example_bucket_distribution\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n config = {\n backend = {\n type = \"bucket\"\n bucket_url = \"https://my-test.object.storage.eu01.onstackit.cloud\"\n region = \"eu01\"\n\n # Credentials are required for bucket backends\n # It is strongly recommended to use variables for secrets\n credentials = {\n access_key_id = var.bucket_access_key\n secret_access_key = var.bucket_secret_key\n }\n }\n regions = [\"EU\", \"US\"]\n blocked_countries = [\"CN\", \"RU\"]\n\n optimizer = {\n enabled = false\n }\n }\n}\n\n# Only use the import statement, if you want to import an existing cdn distribution\nimport {\n to = stackit_cdn_distribution.import-example\n id = \"${var.project_id},${var.distribution_id}\"\n}\n```\n", "properties": { "config": { "$ref": "#/types/stackit:index/CdnDistributionConfig:CdnDistributionConfig", @@ -8749,8 +8808,183 @@ "type": "object" } }, + "stackit:index/logsAccessToken:LogsAccessToken": { + "description": "Logs access token resource schema. Uses the \u003cspan pulumi-lang-nodejs=\"`defaultRegion`\" pulumi-lang-dotnet=\"`DefaultRegion`\" pulumi-lang-go=\"`defaultRegion`\" pulumi-lang-python=\"`default_region`\" pulumi-lang-yaml=\"`defaultRegion`\" pulumi-lang-java=\"`defaultRegion`\"\u003e`default_region`\u003c/span\u003e specified in the provider configuration as a fallback in case no \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e is defined on resource level.\n\n## Example Usage\n\n```terraform\nresource \"stackit_logs_access_token\" \"accessToken\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n instance_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n region = \"eu01\"\n display_name = \"logs-access-token-example\"\n permissions = [\n \"read\"\n ]\n}\n\nresource \"stackit_logs_access_token\" \"accessToken2\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n instance_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n region = \"eu01\"\n display_name = \"logs-access-token-example\"\n lifetime = 30\n permissions = [\n \"write\"\n ]\n description = \"Example description\"\n}\n\n# Only use the import statement, if you want to import an existing logs access token\n# Note: The generated access token is only available upon creation.\n# Since this attribute is not fetched from the API call, to prevent the conflicts, you need to add:\n# lifecycle {\n# ignore_changes = [ lifetime ]\n# }\nimport {\n to = stackit_logs_access_token.import-example\n id = \"${var.project_id},${var.region},${var.logs_instance_id},${var.logs_access_token_id}\"\n}\n```\n", + "properties": { + "accessToken": { + "type": "string", + "description": "The generated access token\n", + "secret": true + }, + "accessTokenId": { + "type": "string", + "description": "The access token ID\n" + }, + "creator": { + "type": "string", + "description": "The user who created the access token\n" + }, + "description": { + "type": "string", + "description": "The description of the access token\n" + }, + "displayName": { + "type": "string", + "description": "The displayed name of the access token\n" + }, + "expires": { + "type": "boolean", + "description": "Indicates if the access token can expire\n" + }, + "instanceId": { + "type": "string", + "description": "The Logs instance ID associated with the access token\n" + }, + "lifetime": { + "type": "integer", + "description": "A lifetime period for an access token in days. If unset the token will not expire.\n" + }, + "permissions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The access permissions granted to the access token. Possible values: \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`write`\" pulumi-lang-dotnet=\"`Write`\" pulumi-lang-go=\"`write`\" pulumi-lang-python=\"`write`\" pulumi-lang-yaml=\"`write`\" pulumi-lang-java=\"`write`\"\u003e`write`\u003c/span\u003e.\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID associated with the Logs access token\n" + }, + "region": { + "type": "string", + "description": "STACKIT region name the resource is located in. If not defined, the provider region is used.\n" + }, + "status": { + "type": "string", + "description": "The status of the access token. Possible values are: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`expired`\" pulumi-lang-dotnet=\"`Expired`\" pulumi-lang-go=\"`expired`\" pulumi-lang-python=\"`expired`\" pulumi-lang-yaml=\"`expired`\" pulumi-lang-java=\"`expired`\"\u003e`expired`\u003c/span\u003e.\n" + }, + "validUntil": { + "type": "string", + "description": "The date and time until an access token is valid to (inclusively)\n" + } + }, + "required": [ + "accessToken", + "accessTokenId", + "creator", + "displayName", + "expires", + "instanceId", + "permissions", + "projectId", + "region", + "status", + "validUntil" + ], + "inputProperties": { + "description": { + "type": "string", + "description": "The description of the access token\n" + }, + "displayName": { + "type": "string", + "description": "The displayed name of the access token\n" + }, + "instanceId": { + "type": "string", + "description": "The Logs instance ID associated with the access token\n" + }, + "lifetime": { + "type": "integer", + "description": "A lifetime period for an access token in days. If unset the token will not expire.\n" + }, + "permissions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The access permissions granted to the access token. Possible values: \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`write`\" pulumi-lang-dotnet=\"`Write`\" pulumi-lang-go=\"`write`\" pulumi-lang-python=\"`write`\" pulumi-lang-yaml=\"`write`\" pulumi-lang-java=\"`write`\"\u003e`write`\u003c/span\u003e.\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID associated with the Logs access token\n" + }, + "region": { + "type": "string", + "description": "STACKIT region name the resource is located in. If not defined, the provider region is used.\n" + } + }, + "requiredInputs": [ + "displayName", + "instanceId", + "permissions", + "projectId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering LogsAccessToken resources.\n", + "properties": { + "accessToken": { + "type": "string", + "description": "The generated access token\n", + "secret": true + }, + "accessTokenId": { + "type": "string", + "description": "The access token ID\n" + }, + "creator": { + "type": "string", + "description": "The user who created the access token\n" + }, + "description": { + "type": "string", + "description": "The description of the access token\n" + }, + "displayName": { + "type": "string", + "description": "The displayed name of the access token\n" + }, + "expires": { + "type": "boolean", + "description": "Indicates if the access token can expire\n" + }, + "instanceId": { + "type": "string", + "description": "The Logs instance ID associated with the access token\n" + }, + "lifetime": { + "type": "integer", + "description": "A lifetime period for an access token in days. If unset the token will not expire.\n" + }, + "permissions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The access permissions granted to the access token. Possible values: \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`write`\" pulumi-lang-dotnet=\"`Write`\" pulumi-lang-go=\"`write`\" pulumi-lang-python=\"`write`\" pulumi-lang-yaml=\"`write`\" pulumi-lang-java=\"`write`\"\u003e`write`\u003c/span\u003e.\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID associated with the Logs access token\n" + }, + "region": { + "type": "string", + "description": "STACKIT region name the resource is located in. If not defined, the provider region is used.\n" + }, + "status": { + "type": "string", + "description": "The status of the access token. Possible values are: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`expired`\" pulumi-lang-dotnet=\"`Expired`\" pulumi-lang-go=\"`expired`\" pulumi-lang-python=\"`expired`\" pulumi-lang-yaml=\"`expired`\" pulumi-lang-java=\"`expired`\"\u003e`expired`\u003c/span\u003e.\n" + }, + "validUntil": { + "type": "string", + "description": "The date and time until an access token is valid to (inclusively)\n" + } + }, + "type": "object" + } + }, "stackit:index/logsInstance:LogsInstance": { - "description": "Logs instance resource schema.\n\n\u003e This resource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.\n\n## Example Usage\n\n```terraform\nresource \"stackit_logs_instance\" \"logs\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n region = \"eu01\"\n display_name = \"logs-instance-example\"\n retention_days = 30\n}\n\nresource \"stackit_logs_instance\" \"logs2\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n region = \"eu01\"\n display_name = \"logs-instance-example\"\n retention_days = 30\n acl = [\n \"0.0.0.0/0\"\n ]\n description = \"Example description\"\n}\n\n# Only use the import statement, if you want to import an existing logs instance\nimport {\n to = stackit_logs_instance.import-example\n id = \"${var.project_id},${var.region},${var.logs_instance_id}\"\n}\n```\n", + "description": "Logs instance resource schema. Uses the \u003cspan pulumi-lang-nodejs=\"`defaultRegion`\" pulumi-lang-dotnet=\"`DefaultRegion`\" pulumi-lang-go=\"`defaultRegion`\" pulumi-lang-python=\"`default_region`\" pulumi-lang-yaml=\"`defaultRegion`\" pulumi-lang-java=\"`defaultRegion`\"\u003e`default_region`\u003c/span\u003e specified in the provider configuration as a fallback in case no \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e is defined on resource level.\n\n## Example Usage\n\n```terraform\nresource \"stackit_logs_instance\" \"logs\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n region = \"eu01\"\n display_name = \"logs-instance-example\"\n retention_days = 30\n}\n\nresource \"stackit_logs_instance\" \"logs2\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n region = \"eu01\"\n display_name = \"logs-instance-example\"\n retention_days = 30\n acl = [\n \"0.0.0.0/0\"\n ]\n description = \"Example description\"\n}\n\n# Only use the import statement, if you want to import an existing logs instance\nimport {\n to = stackit_logs_instance.import-example\n id = \"${var.project_id},${var.region},${var.logs_instance_id}\"\n}\n```\n", "properties": { "acls": { "type": "array", @@ -9618,6 +9852,10 @@ "stackit:index/network:Network": { "description": "Network resource schema. Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\u003e Behavior of not configured \u003cspan pulumi-lang-nodejs=\"`ipv4Nameservers`\" pulumi-lang-dotnet=\"`Ipv4Nameservers`\" pulumi-lang-go=\"`ipv4Nameservers`\" pulumi-lang-python=\"`ipv4_nameservers`\" pulumi-lang-yaml=\"`ipv4Nameservers`\" pulumi-lang-java=\"`ipv4Nameservers`\"\u003e`ipv4_nameservers`\u003c/span\u003e will change from January 2026. When \u003cspan pulumi-lang-nodejs=\"`ipv4Nameservers`\" pulumi-lang-dotnet=\"`Ipv4Nameservers`\" pulumi-lang-go=\"`ipv4Nameservers`\" pulumi-lang-python=\"`ipv4_nameservers`\" pulumi-lang-yaml=\"`ipv4Nameservers`\" pulumi-lang-java=\"`ipv4Nameservers`\"\u003e`ipv4_nameservers`\u003c/span\u003e is not set, it will be set to the network area's \u003cspan pulumi-lang-nodejs=\"`defaultNameservers`\" pulumi-lang-dotnet=\"`DefaultNameservers`\" pulumi-lang-go=\"`defaultNameservers`\" pulumi-lang-python=\"`default_nameservers`\" pulumi-lang-yaml=\"`defaultNameservers`\" pulumi-lang-java=\"`defaultNameservers`\"\u003e`default_nameservers`\u003c/span\u003e.\nTo prevent any nameserver configuration, the \u003cspan pulumi-lang-nodejs=\"`ipv4Nameservers`\" pulumi-lang-dotnet=\"`Ipv4Nameservers`\" pulumi-lang-go=\"`ipv4Nameservers`\" pulumi-lang-python=\"`ipv4_nameservers`\" pulumi-lang-yaml=\"`ipv4Nameservers`\" pulumi-lang-java=\"`ipv4Nameservers`\"\u003e`ipv4_nameservers`\u003c/span\u003e attribute should be explicitly set to an empty list `[]`.\nIn cases where \u003cspan pulumi-lang-nodejs=\"`ipv4Nameservers`\" pulumi-lang-dotnet=\"`Ipv4Nameservers`\" pulumi-lang-go=\"`ipv4Nameservers`\" pulumi-lang-python=\"`ipv4_nameservers`\" pulumi-lang-yaml=\"`ipv4Nameservers`\" pulumi-lang-java=\"`ipv4Nameservers`\"\u003e`ipv4_nameservers`\u003c/span\u003e are defined within the resource, the existing behavior will remain unchanged.\n\n## Example Usage\n\n```terraform\nresource \"stackit_network\" \"example_with_name\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-with-name\"\n}\n\nresource \"stackit_network\" \"example_routed_network\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-routed-network\"\n labels = {\n \"key\" = \"value\"\n }\n routed = true\n}\n\nresource \"stackit_network\" \"example_non_routed_network\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-non-routed-network\"\n ipv4_nameservers = [\"1.2.3.4\", \"5.6.7.8\"]\n ipv4_gateway = \"10.1.2.3\"\n ipv4_prefix = \"10.1.2.0/24\"\n labels = {\n \"key\" = \"value\"\n }\n routed = false\n}\n\n# Only use the import statement, if you want to import an existing network\n# Note: There will be a conflict which needs to be resolved manually.\n# These attributes cannot be configured together: [ipv4_prefix,ipv4_prefix_length,ipv4_gateway]\nimport {\n to = stackit_network.import-example\n id = \"${var.project_id},${var.region},${var.network_id}\"\n}\n```\n", "properties": { + "dhcp": { + "type": "boolean", + "description": "If the network has DHCP enabled. Default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n" + }, "ipv4Gateway": { "type": "string", "description": "The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway.\n" @@ -9731,6 +9969,7 @@ } }, "required": [ + "dhcp", "ipv4Gateway", "ipv4Nameservers", "ipv4Prefix", @@ -9752,6 +9991,10 @@ "routingTableId" ], "inputProperties": { + "dhcp": { + "type": "boolean", + "description": "If the network has DHCP enabled. Default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n" + }, "ipv4Gateway": { "type": "string", "description": "The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway.\n" @@ -9840,6 +10083,10 @@ "stateInputs": { "description": "Input properties used for looking up and filtering Network resources.\n", "properties": { + "dhcp": { + "type": "boolean", + "description": "If the network has DHCP enabled. Default value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n" + }, "ipv4Gateway": { "type": "string", "description": "The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway.\n" @@ -10783,7 +11030,7 @@ } }, "stackit:index/observabilityAlertgroup:ObservabilityAlertgroup": { - "description": "Observability alert group resource schema. Used to create alerts based on metrics (Thanos). Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n## Example Usage\n\n```terraform\nresource \"stackit_observability_alertgroup\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n instance_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-alert-group\"\n interval = \"60s\"\n rules = [\n {\n alert = \"example-alert-name\"\n expression = \"kube_node_status_condition{condition=\\\"Ready\\\", status=\\\"false\\\"} \u003e 0\"\n for = \"60s\"\n labels = {\n severity = \"critical\"\n },\n annotations = {\n summary : \"example summary\"\n description : \"example description\"\n }\n },\n {\n alert = \"example-alert-name-2\"\n expression = \"kube_node_status_condition{condition=\\\"Ready\\\", status=\\\"false\\\"} \u003e 0\"\n for = \"1m\"\n labels = {\n severity = \"critical\"\n },\n annotations = {\n summary : \"example summary\"\n description : \"example description\"\n }\n },\n ]\n}\n\n# Only use the import statement, if you want to import an existing observability alertgroup\nimport {\n to = stackit_observability_alertgroup.import-example\n id = \"${var.project_id},${var.observability_instance_id},${var.observability_alertgroup_name}\"\n}\n```\n", + "description": "Observability alert group resource schema. Used to create alerts based on metrics (Thanos). Must have a \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e specified in the provider configuration.\n\n## Example Usage\n\n```terraform\nresource \"stackit_observability_alertgroup\" \"example\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n instance_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n name = \"example-alert-group\"\n interval = \"60s\"\n rules = [\n {\n alert = \"example-alert-name\"\n expression = \"kube_node_status_condition{condition=\\\"Ready\\\", status=\\\"false\\\"} \u003e 0\"\n for = \"60s\"\n labels = {\n severity = \"critical\"\n },\n annotations = {\n summary : \"example summary\"\n description : \"example description\"\n }\n },\n {\n expression = \"kube_node_status_condition{condition=\\\"Ready\\\", status=\\\"false\\\"} \u003e 0\"\n labels = {\n severity = \"critical\"\n },\n record = \"example_record_name\"\n },\n ]\n}\n\n# Only use the import statement, if you want to import an existing observability alertgroup\nimport {\n to = stackit_observability_alertgroup.import-example\n id = \"${var.project_id},${var.observability_instance_id},${var.observability_alertgroup_name}\"\n}\n```\n", "properties": { "instanceId": { "type": "string", @@ -10979,6 +11226,17 @@ "type": "boolean", "description": "If true, a default Grafana server admin user is created. It's recommended to set this to false and use STACKIT SSO (Owner or Observability Grafana Server Admin role) instead. It is still possible to manually create a new Grafana admin user via the Grafana UI later.\n" }, + "grafanaInitialAdminPassword": { + "type": "string", + "description": "Specifies an initial Grafana admin password.\n", + "deprecationMessage": "This attribute is deprecated and will be removed on July 5, 2026. Use \u003cspan pulumi-lang-nodejs=\"`grafanaAdminEnabled`\" pulumi-lang-dotnet=\"`GrafanaAdminEnabled`\" pulumi-lang-go=\"`grafanaAdminEnabled`\" pulumi-lang-python=\"`grafana_admin_enabled`\" pulumi-lang-yaml=\"`grafanaAdminEnabled`\" pulumi-lang-java=\"`grafanaAdminEnabled`\"\u003e`grafana_admin_enabled`\u003c/span\u003e instead.", + "secret": true + }, + "grafanaInitialAdminUser": { + "type": "string", + "description": "Specifies an initial Grafana admin username.\n", + "deprecationMessage": "This attribute is deprecated and will be removed on July 5, 2026. Use \u003cspan pulumi-lang-nodejs=\"`grafanaAdminEnabled`\" pulumi-lang-dotnet=\"`GrafanaAdminEnabled`\" pulumi-lang-go=\"`grafanaAdminEnabled`\" pulumi-lang-python=\"`grafana_admin_enabled`\" pulumi-lang-yaml=\"`grafanaAdminEnabled`\" pulumi-lang-java=\"`grafanaAdminEnabled`\"\u003e`grafana_admin_enabled`\u003c/span\u003e instead." + }, "grafanaPublicReadAccess": { "type": "boolean", "description": "If true, anyone can access Grafana dashboards without logging in.\n" @@ -11075,6 +11333,8 @@ "alertingUrl", "dashboardUrl", "grafanaAdminEnabled", + "grafanaInitialAdminPassword", + "grafanaInitialAdminUser", "grafanaPublicReadAccess", "grafanaUrl", "instanceId", @@ -11185,6 +11445,17 @@ "type": "boolean", "description": "If true, a default Grafana server admin user is created. It's recommended to set this to false and use STACKIT SSO (Owner or Observability Grafana Server Admin role) instead. It is still possible to manually create a new Grafana admin user via the Grafana UI later.\n" }, + "grafanaInitialAdminPassword": { + "type": "string", + "description": "Specifies an initial Grafana admin password.\n", + "deprecationMessage": "This attribute is deprecated and will be removed on July 5, 2026. Use \u003cspan pulumi-lang-nodejs=\"`grafanaAdminEnabled`\" pulumi-lang-dotnet=\"`GrafanaAdminEnabled`\" pulumi-lang-go=\"`grafanaAdminEnabled`\" pulumi-lang-python=\"`grafana_admin_enabled`\" pulumi-lang-yaml=\"`grafanaAdminEnabled`\" pulumi-lang-java=\"`grafanaAdminEnabled`\"\u003e`grafana_admin_enabled`\u003c/span\u003e instead.", + "secret": true + }, + "grafanaInitialAdminUser": { + "type": "string", + "description": "Specifies an initial Grafana admin username.\n", + "deprecationMessage": "This attribute is deprecated and will be removed on July 5, 2026. Use \u003cspan pulumi-lang-nodejs=\"`grafanaAdminEnabled`\" pulumi-lang-dotnet=\"`GrafanaAdminEnabled`\" pulumi-lang-go=\"`grafanaAdminEnabled`\" pulumi-lang-python=\"`grafana_admin_enabled`\" pulumi-lang-yaml=\"`grafanaAdminEnabled`\" pulumi-lang-java=\"`grafanaAdminEnabled`\"\u003e`grafana_admin_enabled`\u003c/span\u003e instead." + }, "grafanaPublicReadAccess": { "type": "boolean", "description": "If true, anyone can access Grafana dashboards without logging in.\n" @@ -11900,7 +12171,8 @@ "description": "The Access Control List (ACL) for the PostgresFlex instance.\n" }, "backupSchedule": { - "type": "string" + "type": "string", + "description": "The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'.\n" }, "flavor": { "$ref": "#/types/stackit:index/PostgresflexInstanceFlavor:PostgresflexInstanceFlavor" @@ -11922,7 +12194,8 @@ "description": "The resource region. If not defined, the provider region is used.\n" }, "replicas": { - "type": "integer" + "type": "integer", + "description": "How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication.\n" }, "storage": { "$ref": "#/types/stackit:index/PostgresflexInstanceStorage:PostgresflexInstanceStorage" @@ -11952,7 +12225,8 @@ "description": "The Access Control List (ACL) for the PostgresFlex instance.\n" }, "backupSchedule": { - "type": "string" + "type": "string", + "description": "The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'.\n" }, "flavor": { "$ref": "#/types/stackit:index/PostgresflexInstanceFlavor:PostgresflexInstanceFlavor" @@ -11970,7 +12244,8 @@ "description": "The resource region. If not defined, the provider region is used.\n" }, "replicas": { - "type": "integer" + "type": "integer", + "description": "How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication.\n" }, "storage": { "$ref": "#/types/stackit:index/PostgresflexInstanceStorage:PostgresflexInstanceStorage" @@ -11999,7 +12274,8 @@ "description": "The Access Control List (ACL) for the PostgresFlex instance.\n" }, "backupSchedule": { - "type": "string" + "type": "string", + "description": "The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'.\n" }, "flavor": { "$ref": "#/types/stackit:index/PostgresflexInstanceFlavor:PostgresflexInstanceFlavor" @@ -12021,7 +12297,8 @@ "description": "The resource region. If not defined, the provider region is used.\n" }, "replicas": { - "type": "integer" + "type": "integer", + "description": "How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication.\n" }, "storage": { "$ref": "#/types/stackit:index/PostgresflexInstanceStorage:PostgresflexInstanceStorage" @@ -17815,8 +18092,107 @@ ] } }, + "stackit:index/getLogsAccessToken:getLogsAccessToken": { + "description": "Logs access token data source schema. Uses the \u003cspan pulumi-lang-nodejs=\"`defaultRegion`\" pulumi-lang-dotnet=\"`DefaultRegion`\" pulumi-lang-go=\"`defaultRegion`\" pulumi-lang-python=\"`default_region`\" pulumi-lang-yaml=\"`defaultRegion`\" pulumi-lang-java=\"`defaultRegion`\"\u003e`default_region`\u003c/span\u003e specified in the provider configuration as a fallback in case no \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e is defined on datasource level.\n\n## Example Usage\n\n```terraform\ndata \"stackit_logs_access_token\" \"accessToken\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n region = \"eu01\"\n instance_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n access_token_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n```\n", + "inputs": { + "description": "A collection of arguments for invoking getLogsAccessToken.\n", + "properties": { + "accessTokenId": { + "type": "string", + "description": "The access token ID\n" + }, + "instanceId": { + "type": "string", + "description": "The Logs instance ID associated with the access token\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID associated with the Logs access token\n" + }, + "region": { + "type": "string", + "description": "STACKIT region name the resource is located in. If not defined, the provider region is used.\n" + } + }, + "type": "object", + "required": [ + "accessTokenId", + "instanceId", + "projectId" + ] + }, + "outputs": { + "description": "A collection of values returned by getLogsAccessToken.\n", + "properties": { + "accessTokenId": { + "type": "string", + "description": "The access token ID\n" + }, + "creator": { + "type": "string", + "description": "The user who created the access token\n" + }, + "description": { + "type": "string", + "description": "The description of the access token\n" + }, + "displayName": { + "type": "string", + "description": "The displayed name of the access token\n" + }, + "expires": { + "type": "boolean", + "description": "Indicates if the access token can expire\n" + }, + "id": { + "type": "string" + }, + "instanceId": { + "type": "string", + "description": "The Logs instance ID associated with the access token\n" + }, + "permissions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The access permissions granted to the access token. Possible values: \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`write`\" pulumi-lang-dotnet=\"`Write`\" pulumi-lang-go=\"`write`\" pulumi-lang-python=\"`write`\" pulumi-lang-yaml=\"`write`\" pulumi-lang-java=\"`write`\"\u003e`write`\u003c/span\u003e.\n" + }, + "projectId": { + "type": "string", + "description": "STACKIT project ID associated with the Logs access token\n" + }, + "region": { + "type": "string", + "description": "STACKIT region name the resource is located in. If not defined, the provider region is used.\n" + }, + "status": { + "type": "string", + "description": "The status of the access token. Possible values are: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`expired`\" pulumi-lang-dotnet=\"`Expired`\" pulumi-lang-go=\"`expired`\" pulumi-lang-python=\"`expired`\" pulumi-lang-yaml=\"`expired`\" pulumi-lang-java=\"`expired`\"\u003e`expired`\u003c/span\u003e.\n" + }, + "validUntil": { + "type": "string", + "description": "The date and time until an access token is valid to (inclusively)\n" + } + }, + "type": "object", + "required": [ + "accessTokenId", + "creator", + "description", + "displayName", + "expires", + "id", + "instanceId", + "permissions", + "projectId", + "status", + "validUntil" + ] + } + }, "stackit:index/getLogsInstance:getLogsInstance": { - "description": "Logs instance data source schema.\n\n\u003e This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.\n\n## Example Usage\n\n```terraform\ndata \"stackit_logs_instance\" \"logs\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n region = \"eu01\"\n instance_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n```\n", + "description": "Logs instance data source schema. Uses the \u003cspan pulumi-lang-nodejs=\"`defaultRegion`\" pulumi-lang-dotnet=\"`DefaultRegion`\" pulumi-lang-go=\"`defaultRegion`\" pulumi-lang-python=\"`default_region`\" pulumi-lang-yaml=\"`defaultRegion`\" pulumi-lang-java=\"`defaultRegion`\"\u003e`default_region`\u003c/span\u003e specified in the provider configuration as a fallback in case no \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e is defined on datasource level.\n\n## Example Usage\n\n```terraform\ndata \"stackit_logs_instance\" \"logs\" {\n project_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n region = \"eu01\"\n instance_id = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"\n}\n```\n", "inputs": { "description": "A collection of arguments for invoking getLogsInstance.\n", "properties": { @@ -18368,7 +18744,7 @@ }, "region": { "type": "string", - "description": "Can only be used when experimental \"network\" is set. This is likely going to undergo significant changes or be removed in the future.\nThe resource region. If not defined, the provider region is used.\n" + "description": "The resource region. If not defined, the provider region is used.\n" } }, "type": "object", @@ -18380,6 +18756,10 @@ "outputs": { "description": "A collection of values returned by getNetwork.\n", "properties": { + "dhcp": { + "type": "boolean", + "description": "Shows if DHCP is enabled for the network.\n" + }, "id": { "type": "string" }, @@ -18478,7 +18858,7 @@ }, "region": { "type": "string", - "description": "Can only be used when experimental \"network\" is set. This is likely going to undergo significant changes or be removed in the future.\nThe resource region. If not defined, the provider region is used.\n" + "description": "The resource region. If not defined, the provider region is used.\n" }, "routed": { "type": "boolean", @@ -18486,11 +18866,12 @@ }, "routingTableId": { "type": "string", - "description": "Can only be used when experimental \"network\" is set. This is likely going to undergo significant changes or be removed in the future. Use it at your own discretion.\nThe ID of the routing table associated with the network.\n" + "description": "The ID of the routing table associated with the network.\n" } }, "type": "object", "required": [ + "dhcp", "id", "ipv4Gateway", "ipv4Nameservers", @@ -19167,6 +19548,17 @@ "type": "boolean", "description": "If true, a default Grafana server admin user was created.\n" }, + "grafanaInitialAdminPassword": { + "type": "string", + "description": "Specifies an initial Grafana admin password.\n", + "deprecationMessage": "This attribute is deprecated and will be removed on July 5, 2026. Use \u003cspan pulumi-lang-nodejs=\"`grafanaAdminEnabled`\" pulumi-lang-dotnet=\"`GrafanaAdminEnabled`\" pulumi-lang-go=\"`grafanaAdminEnabled`\" pulumi-lang-python=\"`grafana_admin_enabled`\" pulumi-lang-yaml=\"`grafanaAdminEnabled`\" pulumi-lang-java=\"`grafanaAdminEnabled`\"\u003e`grafana_admin_enabled`\u003c/span\u003e instead.", + "secret": true + }, + "grafanaInitialAdminUser": { + "type": "string", + "description": "Specifies an initial Grafana admin username.\n", + "deprecationMessage": "This attribute is deprecated and will be removed on July 5, 2026. Use \u003cspan pulumi-lang-nodejs=\"`grafanaAdminEnabled`\" pulumi-lang-dotnet=\"`GrafanaAdminEnabled`\" pulumi-lang-go=\"`grafanaAdminEnabled`\" pulumi-lang-python=\"`grafana_admin_enabled`\" pulumi-lang-yaml=\"`grafanaAdminEnabled`\" pulumi-lang-java=\"`grafanaAdminEnabled`\"\u003e`grafana_admin_enabled`\u003c/span\u003e instead." + }, "grafanaPublicReadAccess": { "type": "boolean", "description": "If true, anyone can access Grafana dashboards without logging in.\n" @@ -19269,6 +19661,8 @@ "alertingUrl", "dashboardUrl", "grafanaAdminEnabled", + "grafanaInitialAdminPassword", + "grafanaInitialAdminUser", "grafanaPublicReadAccess", "grafanaUrl", "id", diff --git a/provider/go.mod b/provider/go.mod index 58cea83..5f3d2e4 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -155,36 +155,36 @@ require ( github.com/spf13/cobra v1.10.1 // indirect github.com/spf13/pflag v1.0.10 // indirect github.com/stackitcloud/stackit-sdk-go/core v0.21.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/authorization v0.11.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/cdn v1.9.2 // indirect - github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.4 // indirect - github.com/stackitcloud/stackit-sdk-go/services/edge v0.4.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/git v0.10.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/iaas v1.3.2 // indirect - github.com/stackitcloud/stackit-sdk-go/services/kms v1.3.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.7.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/logme v0.25.4 // indirect - github.com/stackitcloud/stackit-sdk-go/services/logs v0.5.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.25.4 // indirect - github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.6.3 // indirect - github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.5.6 // indirect - github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.4.3 // indirect - github.com/stackitcloud/stackit-sdk-go/services/observability v0.16.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.24.4 // indirect - github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.3 // indirect - github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.25.4 // indirect - github.com/stackitcloud/stackit-sdk-go/services/redis v0.25.4 // indirect - github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.18.3 // indirect - github.com/stackitcloud/stackit-sdk-go/services/scf v0.4.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.14.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.6 // indirect - github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.4 // indirect + github.com/stackitcloud/stackit-sdk-go/services/authorization v0.12.0 // indirect + github.com/stackitcloud/stackit-sdk-go/services/cdn v1.9.4 // indirect + github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.6 // indirect + github.com/stackitcloud/stackit-sdk-go/services/edge v0.4.3 // indirect + github.com/stackitcloud/stackit-sdk-go/services/git v0.10.3 // indirect + github.com/stackitcloud/stackit-sdk-go/services/iaas v1.3.5 // indirect + github.com/stackitcloud/stackit-sdk-go/services/kms v1.3.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.7.3 // indirect + github.com/stackitcloud/stackit-sdk-go/services/logme v0.25.6 // indirect + github.com/stackitcloud/stackit-sdk-go/services/logs v0.5.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.25.6 // indirect + github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.6.5 // indirect + github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.5.8 // indirect + github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.4.5 // indirect + github.com/stackitcloud/stackit-sdk-go/services/observability v0.16.3 // indirect + github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.24.6 // indirect + github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.5 // indirect + github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.25.6 // indirect + github.com/stackitcloud/stackit-sdk-go/services/redis v0.25.6 // indirect + github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.18.5 // indirect + github.com/stackitcloud/stackit-sdk-go/services/scf v0.4.3 // indirect + github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.14.3 // indirect + github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.8 // indirect + github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.6 // indirect github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.11.6 // indirect - github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.2.5 // indirect + github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.2.7 // indirect github.com/stackitcloud/stackit-sdk-go/services/sfs v0.3.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/ske v1.6.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.4.1 // indirect - github.com/stackitcloud/terraform-provider-stackit v0.80.0 // indirect + github.com/stackitcloud/stackit-sdk-go/services/ske v1.6.3 // indirect + github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.4.3 // indirect + github.com/stackitcloud/terraform-provider-stackit v0.81.0 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/teambition/rrule-go v1.8.2 // indirect github.com/teekennedy/goldmark-markdown v0.3.0 // indirect diff --git a/provider/go.sum b/provider/go.sum index ef06a0a..45b9d35 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -1355,66 +1355,66 @@ github.com/stackitcloud/pulumi-stackit/provider/shim v0.0.3 h1:aoZCTIAaJkW7Cmks6 github.com/stackitcloud/pulumi-stackit/provider/shim v0.0.3/go.mod h1:F4bSBR3AuonR/lLPO4EuZY7wmd1AVxOP+hvfI7Jdqs0= github.com/stackitcloud/stackit-sdk-go/core v0.21.1 h1:Y/PcAgM7DPYMNqum0MLv4n1mF9ieuevzcCIZYQfm3Ts= github.com/stackitcloud/stackit-sdk-go/core v0.21.1/go.mod h1:osMglDby4csGZ5sIfhNyYq1bS1TxIdPY88+skE/kkmI= -github.com/stackitcloud/stackit-sdk-go/services/authorization v0.11.1 h1:gMAZURshmPGIIkLbZQYq+wvr+tAGa5Jdd2xyTpFtGUo= -github.com/stackitcloud/stackit-sdk-go/services/authorization v0.11.1/go.mod h1:/gj9PeF6294awSPeYokbHfZbcWK+6Dr4DQO2Z37eYQU= -github.com/stackitcloud/stackit-sdk-go/services/cdn v1.9.2 h1:Xp4FxCBiTQhqed2tB26fRJJTQST2NwDTiXiacqeTfMI= -github.com/stackitcloud/stackit-sdk-go/services/cdn v1.9.2/go.mod h1:aoFctJ6HPLUqJxOumwFFTPHykpSBx35wR/raw7rjp9k= -github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.4 h1:XIPjrjUemYEf29EXMl9kk/X1uqND8VhvM5qrWdYleYM= -github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.4/go.mod h1:HstEWjyE3Pr2mVdzfx/BvVo3XUisllN+GRr0F52scB8= -github.com/stackitcloud/stackit-sdk-go/services/edge v0.4.1 h1:BniqPDK1pjqXFq07JL5L9IpWFxaOp/5kxptnXKsb/Ks= -github.com/stackitcloud/stackit-sdk-go/services/edge v0.4.1/go.mod h1:UY3xF2A9jkaBoQgLdrAcMn0rCiZdmLAO3edWJUGjjqI= -github.com/stackitcloud/stackit-sdk-go/services/git v0.10.1 h1:3JKXfI5hdcXcRVBjUZg5qprXG5rDmPnM6dsvplMk/vg= -github.com/stackitcloud/stackit-sdk-go/services/git v0.10.1/go.mod h1:3nTaj8IGjNNGYUD2CpuXkXwc5c4giTUmoPggFhjVFxo= -github.com/stackitcloud/stackit-sdk-go/services/iaas v1.3.2 h1:bdjhr77dlp02OWqlzaju4QG8nNraT4bWsxKtGWcQ2EI= -github.com/stackitcloud/stackit-sdk-go/services/iaas v1.3.2/go.mod h1:VlDVK/MW8Obgacl5UPrfB8MSIfu4rS/fSYPI1i/fDac= -github.com/stackitcloud/stackit-sdk-go/services/kms v1.3.0 h1:CMwegmCMidg1yrNy8NtEdMQ/9+28GwI/gOCT3isynls= -github.com/stackitcloud/stackit-sdk-go/services/kms v1.3.0/go.mod h1:Kuem2KiTGZL1i6kL9LLOlvA9M+SatKaJbNWQ7o87Px4= -github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.7.1 h1:2UKKtBg+E5IFUcZAkRyKz1Km+tsA//zGjFQjVWwaXss= -github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.7.1/go.mod h1:3/7s4cDhMBY7u84XjD9aUm649aoPhsBsjfPG/WDUujY= -github.com/stackitcloud/stackit-sdk-go/services/logme v0.25.4 h1:HbV75SJtvpQPKKLrHswqipF4gHpEuH8b5NtGgVRI5MI= -github.com/stackitcloud/stackit-sdk-go/services/logme v0.25.4/go.mod h1:MKUfkOdJkkC7qZV0inkyaVAHy2yye3PcO2YYk7e7Zso= -github.com/stackitcloud/stackit-sdk-go/services/logs v0.5.0 h1:Tg7sKlkJUOcOTsO+QtAfk8cazBlOrVdcQr0NP4QIrRY= -github.com/stackitcloud/stackit-sdk-go/services/logs v0.5.0/go.mod h1:1l/ViyPvQ7xBnKp/ca3c5um8l5hZCRc7E2E9UNVrMSg= -github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.25.4 h1:QunmGUncxdWpsgT7SFaIIhZOicq4eFtOm0itI8I6Mm4= -github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.25.4/go.mod h1:vOZc19aIZCajXUDxCqwacKJPiI5YvbrDuwT7uBEc/ps= -github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.6.3 h1:Mjj+U8WYuSbNKFKduyyVhgRla10qM0MEXzEF8mVtNCo= -github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.6.3/go.mod h1:UCzgeCjg29vHecR2KCJ634Aj2Tc4vGOVIiAeMUmKUY0= -github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.5.6 h1:SVRCVrbcn07p8BVJv1MxJ0ji8BzsmTtE1VIMGxWIbEE= -github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.5.6/go.mod h1:Nk7FmNqvNgGG1yxxaiXuZ/9Y8moKWjnlYGeihNSCvd8= -github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.4.3 h1:t2ZDnpwe+2rSXeFbpo/CM1EDs0roDOtUZoMgxKXvSQI= -github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.4.3/go.mod h1:6RTkmbnVfG0ecFTS0oK3+JxJ1JEx98NP8jSbl0Qwjdc= -github.com/stackitcloud/stackit-sdk-go/services/observability v0.16.1 h1:FKeW3uiMXRl6Oau3xE6yBriXh4t7CwPb8QH6PR0uQXM= -github.com/stackitcloud/stackit-sdk-go/services/observability v0.16.1/go.mod h1:RiknJnL3OuU9wb2lyb80Hu+EnlyDQMG8vejDV7B9a5U= -github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.24.4 h1:ppmezCAc8XBW6sdS5lvV6Edx0FOPwC/fosvH3FEIdps= -github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.24.4/go.mod h1:c509eL4M/Qdg4FGT6qTh7r4E07FtB2Ui3sbbLERUBqk= -github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.3 h1:SsjJQPQ7Xtpr64CH1Cjifs5r2ogfzrFzHBWOtNmilSA= -github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.3/go.mod h1:q83l1YJjQPkg0AMZGOLFW/H3ICWFik37tMRV/LgX8PE= -github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.25.4 h1:7q+K1vbUxZjC0eUg5hAg++OVB8RpQhSerX+nuvMYDI0= -github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.25.4/go.mod h1:GE4q9QaKgKFe4CcyYEi3EC2yM1hv0OE/gRGQEomQBEU= -github.com/stackitcloud/stackit-sdk-go/services/redis v0.25.4 h1:nWwKxhkwpDKUx3kX6DOIDmQmak7/flAX2cBf6snoFoU= -github.com/stackitcloud/stackit-sdk-go/services/redis v0.25.4/go.mod h1:p2OGTqy41M9/pTmoRC3hr7p/xS95Ctdmf3FsB5HHq4U= -github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.18.3 h1:83W+OFFnun/8CreT0gxCHDgI7TfU5juU/hMs7kOmYFQ= -github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.18.3/go.mod h1:C9fJVAR09G34tNwUlzV65TEug+F8QUru6REWHgPYasc= -github.com/stackitcloud/stackit-sdk-go/services/scf v0.4.1 h1:1CMEzli6xvrouvDhtHMzcl/qcmHH5C6Y2FQw01LIWjg= -github.com/stackitcloud/stackit-sdk-go/services/scf v0.4.1/go.mod h1:+fgIvT6/kKEHXMkrBXx9cRDP8/dZ37yn1wYSwZ6rOQw= -github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.14.1 h1:G2KhPbC+IDWa35qPnYqrP9pAkZXzclNL44E2gPIrZ0o= -github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.14.1/go.mod h1:kISQzDKxzNZcj0ShgvUpkk7QRbG6tSVUijdgszTqEFc= -github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.6 h1:9idmXyZVnshvF03lpftpvRhzfiaIS4gQMLIFqU5kRr0= -github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.6/go.mod h1:I4j+7qq2zJjN1yoPTJCNmfK1JJJnB+uOTwvHUX7+Xp0= -github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.4 h1:iwvZDes550r7CogpDHFPtg4gWUJspBb3lr7uEchMMRw= -github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.4/go.mod h1:6LiqSDha0bjuqchBpGOlJ/4efGGadmi1jB/mpa5s3Ls= +github.com/stackitcloud/stackit-sdk-go/services/authorization v0.12.0 h1:HxPgBu04j5tj6nfZ2r0l6v4VXC0/tYOGe4sA5Addra8= +github.com/stackitcloud/stackit-sdk-go/services/authorization v0.12.0/go.mod h1:uYI9pHAA2g84jJN25ejFUxa0/JtfpPZqMDkctQ1BzJk= +github.com/stackitcloud/stackit-sdk-go/services/cdn v1.9.4 h1:6xBogGvhlw/F74g2aK1iSRoOUdiP37pjRK9DTgNZF3o= +github.com/stackitcloud/stackit-sdk-go/services/cdn v1.9.4/go.mod h1:vvWMnaLTsgAj9bTUwrCkC9NN+U4NCXMCOAkU8ExlReE= +github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.6 h1:GBRb49x5Nax/oQQaaf2F3kKwv8DQQOL0TQOC0C/v/Ew= +github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.6/go.mod h1:IX9iL3MigDZUmzwswTJMfYvyi118KAHrFMfjJUy5NYk= +github.com/stackitcloud/stackit-sdk-go/services/edge v0.4.3 h1:TxChb2qbO82JiQEBYClSSD5HZxqKeKJ6dIvkEUCJmbs= +github.com/stackitcloud/stackit-sdk-go/services/edge v0.4.3/go.mod h1:KVWvQHb7CQLD9DzA4Np3WmakiCCsrHaCXvFEnOQ7nPk= +github.com/stackitcloud/stackit-sdk-go/services/git v0.10.3 h1:VIjkSofZz9utOOkBdNZCIb07P/JdKc1kHV1P8Rq9dLc= +github.com/stackitcloud/stackit-sdk-go/services/git v0.10.3/go.mod h1:EJk1Ss9GTel2NPIu/w3+x9XcQcEd2k3ibea5aQDzVhQ= +github.com/stackitcloud/stackit-sdk-go/services/iaas v1.3.5 h1:W57+XRa8wTLsi5CV9Tqa7mGgt/PvlRM//RurXSmvII8= +github.com/stackitcloud/stackit-sdk-go/services/iaas v1.3.5/go.mod h1:lTWjW57eAq1bwfM6nsNinhoBr3MHFW/GaFasdAsYfDM= +github.com/stackitcloud/stackit-sdk-go/services/kms v1.3.2 h1:2ulSL2IkIAKND59eAjbEhVkOoBMyvm48ojwz1a3t0U0= +github.com/stackitcloud/stackit-sdk-go/services/kms v1.3.2/go.mod h1:cuIaMMiHeHQsbvy7BOFMutoV3QtN+ZBx7Tg3GmYUw7s= +github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.7.3 h1:d/qIj+XNaqByVbLvwpWoA0Ekv0yrONWyNswg4/jGX7Y= +github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.7.3/go.mod h1:ClPE4TOM1FeaJiwTXvApq4gWaSgTLq6nU3PPHAIQDN4= +github.com/stackitcloud/stackit-sdk-go/services/logme v0.25.6 h1:4x30lC+YBmo7XpsAzTn0W+C/oP5flnLVgIh5u3O/P0o= +github.com/stackitcloud/stackit-sdk-go/services/logme v0.25.6/go.mod h1:ewaYUiZcBTSS6urE5zEJBPCqxu70w2IjnBHCvnKdFKE= +github.com/stackitcloud/stackit-sdk-go/services/logs v0.5.2 h1:vr4atxFRT+EL+DqONMT5R44f7AzEMbePa9U7PEE0THU= +github.com/stackitcloud/stackit-sdk-go/services/logs v0.5.2/go.mod h1:CAPsiTX7osAImfrG5RnIjaJ/Iz3QpoBKuH2fS346wuQ= +github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.25.6 h1:Y/byRjX2u/OZl0gKS/Rau6ob2bDyv26xnw6A6JNkKJk= +github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.25.6/go.mod h1:sY66ZgCgBc1mScPV95ek5WtUEGYizdP1RMsGaqbdbhw= +github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.6.5 h1:nT/H4WvYaMKWtoE1QtXGuKjlmh7FW+efG3xElRsJhsI= +github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.6.5/go.mod h1:VWaQAtaAXjWhs1WDG/ZSRpCtIx1NK82Q4ZnKcOdthK4= +github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.5.8 h1:S7t4wcT6SN8ZzdoY8d6VbF903zFpGjzqrU0FN27rJPg= +github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.5.8/go.mod h1:CdrhFUsBO7/iJleCc2yQjDChIbG6YaxKNBQRNCjgcF4= +github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.4.5 h1:4gpvB6t7d2lLjInoTxcvjL9jCpBl5EDfYe5yUtR1MvA= +github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.4.5/go.mod h1:Bdcd59sRySyhfSUCy+5BNkp5w9PECmrywdvt+ORMKnI= +github.com/stackitcloud/stackit-sdk-go/services/observability v0.16.3 h1:J/R6iBALMiNpg+JDEx1adH50TM4UTF/KBYFuHENMKIs= +github.com/stackitcloud/stackit-sdk-go/services/observability v0.16.3/go.mod h1:9KdrXC5JS30Ay3mR0adb3vNdhca+qxiy/cPF5P4wehQ= +github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.24.6 h1:oTVx1+O177Ojn8OvXIOUbRSwtx7L59jhxDPrZEQFOfQ= +github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.24.6/go.mod h1:6ZBeCCY6qG8w1oK7osf61Egyv3mp7Ahv6GDGxiarDGo= +github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.5 h1:H67e3KnHQx954yI8fuQmxXwRf/myqAdLg2KvxImp00g= +github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.5/go.mod h1:xmAWk9eom8wznvLuLfm0F4xyeiBX8LaggXsKFmos+dw= +github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.25.6 h1:+TFfl1ON/uM5aO0FdkBNYKBa7vx0zrCYVtX6zvqQYBA= +github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.25.6/go.mod h1:hnhvlLX1Y71R8KIQqLBeoSZqkU5ZJOG0J4wz0LeUdaw= +github.com/stackitcloud/stackit-sdk-go/services/redis v0.25.6 h1:CXM9cZ9WeTyJd+Aw/hnJnDsKRVAQi4qgtd0RJ3zoPwo= +github.com/stackitcloud/stackit-sdk-go/services/redis v0.25.6/go.mod h1:KJNceOHRefjku1oVBoHG7idCS/SeW42WJ+55bN3AxrQ= +github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.18.5 h1:MZ5aTO2NQ1Jecmi67ByGskve5nKXHl91fE+z+vFjxt4= +github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.18.5/go.mod h1:CJLmdqWvJm5/3+lXPDKu8k4WXs2UG8euGoqQX5xE79k= +github.com/stackitcloud/stackit-sdk-go/services/scf v0.4.3 h1:ZM3V8ON60jbQuSQsXP+7pdw7uleGfNYrM2dc/mNob9Y= +github.com/stackitcloud/stackit-sdk-go/services/scf v0.4.3/go.mod h1:VYD+ErIhDLulexh3vpDTRhPTYQVoVfyW8DPD79Q8I+s= +github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.14.3 h1:3hZSg3z+4AXa5LbR2Vl38VmSA83ABItE63E53LuyWv8= +github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.14.3/go.mod h1:5unx5r0IgeFCtJDEgsWddtgKvYSw442FDNdhtfyJnQI= +github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.8 h1:LLyANBzE8sQa0/49tQBqq4sVLhNgwdqCeQm76srJHWw= +github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.8/go.mod h1:/bmg57XZu+bGczzcoumrukiGMPGzI2mOyTT4BVIQUBs= +github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.6 h1:sQ3fdtUjgIL2Ul8nRYVVacHOwi5aSMTGGbYVL30oQBU= +github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.6/go.mod h1:3fjlL+9YtuI9Oocl1ZeYIK48ImtY4DwPggFhqAygr7o= github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.11.6 h1:WU76mZkJP6diMDjGFqM8On6fZhUDmGcy6ppX0+kWx9Y= github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.11.6/go.mod h1:hRllU+yEJM6ovrLeXwVeT5hI70ftPKjX4z/Nj8TZqJw= -github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.2.5 h1:P2lqx/WGqwTDQVPxFh4NbU6ygg52J33ClIDrCFWomAc= -github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.2.5/go.mod h1:hwk3gEL1l9dVM4HWGaV8eM+Yxb4dEFENPN15LYP85gI= +github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.2.7 h1:M2PYLF8k3zmAwYWSKfUiCTNTXr7ROGuJganVVEQA3YI= +github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.2.7/go.mod h1:jitkQuP2K/SH63Qor0C4pcqz1GDCy/lK2H4t8/VDse4= github.com/stackitcloud/stackit-sdk-go/services/sfs v0.3.0 h1:4567q2dFp3Hw+5Kx+NLDKDcMWsRHMazTlh5aBrhlkXs= github.com/stackitcloud/stackit-sdk-go/services/sfs v0.3.0/go.mod h1:r5lBwzJpJe2xBIYctkVIIpaZ41Y6vUEpkmsWR2VoQJs= -github.com/stackitcloud/stackit-sdk-go/services/ske v1.6.1 h1:gWC/4rCroldoHtlSu1WMhYOZqXsNSoVCiLr/uQcIN1I= -github.com/stackitcloud/stackit-sdk-go/services/ske v1.6.1/go.mod h1:gMb+Jx6OmkZ12GxVXf8UffSVQbkc+OO/Ml6AXz9ifhg= -github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.4.1 h1:6MJdy1xmdE+uOo/F8mR5HSldjPSHpdhwuqS3u9m2EWQ= -github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.4.1/go.mod h1:XLr3ZfrT1g8ZZMm7A6RXOPBuhBkikdUN2o/+/Y+Hu+g= -github.com/stackitcloud/terraform-provider-stackit v0.80.0 h1:tl0tx8OHhZL92GE1iHEpXO3gVZYNsx9WlhwLuL1aC8Q= -github.com/stackitcloud/terraform-provider-stackit v0.80.0/go.mod h1:vk4zcxlTm19DX6nNWZdNPiPyJc5175PJiLUbLBGisGQ= +github.com/stackitcloud/stackit-sdk-go/services/ske v1.6.3 h1:c+nQMvSml08cdRF1kE24vCw0r/l56olP/svQyhcnKOs= +github.com/stackitcloud/stackit-sdk-go/services/ske v1.6.3/go.mod h1:1Jr+ImrmPERxbYnlTy6O2aSZYNnREf2qQyysv6YC1RY= +github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.4.3 h1:AQrcr+qeIuZob+3TT2q1L4WOPtpsu5SEpkTnOUHDqfE= +github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.4.3/go.mod h1:8BBGC69WFXWWmKgzSjgE4HvsI7pEgO0RN2cASwuPJ18= +github.com/stackitcloud/terraform-provider-stackit v0.81.0 h1:cn7kxRh6HaJfftltBpzPvpExCLWv14SAvIjkWCm/vnA= +github.com/stackitcloud/terraform-provider-stackit v0.81.0/go.mod h1:s3bbv1ArMoxMLNESXmAKIilc1dEVagOPLlf7qBKIcUk= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= diff --git a/provider/shim/go.mod b/provider/shim/go.mod index 879f62a..915d1a2 100644 --- a/provider/shim/go.mod +++ b/provider/shim/go.mod @@ -4,14 +4,17 @@ go 1.24.0 toolchain go1.24.2 -require github.com/stackitcloud/terraform-provider-stackit v0.80.0 +require github.com/stackitcloud/terraform-provider-stackit v0.81.0 require ( - github.com/stackitcloud/stackit-sdk-go/services/edge v0.4.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/kms v1.3.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/logs v0.5.0 // indirect - github.com/stackitcloud/stackit-sdk-go/services/scf v0.4.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/edge v0.4.3 // indirect + github.com/stackitcloud/stackit-sdk-go/services/kms v1.3.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/logs v0.5.2 // indirect + github.com/stackitcloud/stackit-sdk-go/services/scf v0.4.3 // indirect github.com/stackitcloud/stackit-sdk-go/services/sfs v0.3.0 // indirect + github.com/stretchr/testify v1.11.1 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 // indirect + google.golang.org/grpc v1.77.0 // indirect ) require ( @@ -29,30 +32,30 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/stackitcloud/stackit-sdk-go/core v0.21.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/authorization v0.11.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/cdn v1.9.2 // indirect - github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.4 // indirect - github.com/stackitcloud/stackit-sdk-go/services/git v0.10.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/iaas v1.3.2 // indirect - github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.7.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/logme v0.25.4 // indirect - github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.25.4 // indirect - github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.6.3 // indirect - github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.5.6 // indirect - github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.4.3 // indirect - github.com/stackitcloud/stackit-sdk-go/services/observability v0.16.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.24.4 // indirect - github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.3 // indirect - github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.25.4 // indirect - github.com/stackitcloud/stackit-sdk-go/services/redis v0.25.4 // indirect - github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.18.3 // indirect - github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.14.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.6 // indirect - github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.4 // indirect + github.com/stackitcloud/stackit-sdk-go/services/authorization v0.12.0 // indirect + github.com/stackitcloud/stackit-sdk-go/services/cdn v1.9.4 // indirect + github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.6 // indirect + github.com/stackitcloud/stackit-sdk-go/services/git v0.10.3 // indirect + github.com/stackitcloud/stackit-sdk-go/services/iaas v1.3.5 // indirect + github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.7.3 // indirect + github.com/stackitcloud/stackit-sdk-go/services/logme v0.25.6 // indirect + github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.25.6 // indirect + github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.6.5 // indirect + github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.5.8 // indirect + github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.4.5 // indirect + github.com/stackitcloud/stackit-sdk-go/services/observability v0.16.3 // indirect + github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.24.6 // indirect + github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.5 // indirect + github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.25.6 // indirect + github.com/stackitcloud/stackit-sdk-go/services/redis v0.25.6 // indirect + github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.18.5 // indirect + github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.14.3 // indirect + github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.8 // indirect + github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.6 // indirect github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.11.6 // indirect - github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.2.5 // indirect - github.com/stackitcloud/stackit-sdk-go/services/ske v1.6.1 // indirect - github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.4.1 // indirect + github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.2.7 // indirect + github.com/stackitcloud/stackit-sdk-go/services/ske v1.6.3 // indirect + github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.4.3 // indirect github.com/teambition/rrule-go v1.8.2 // indirect github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect diff --git a/provider/shim/go.sum b/provider/shim/go.sum index f8349ab..99db3e0 100644 --- a/provider/shim/go.sum +++ b/provider/shim/go.sum @@ -84,69 +84,69 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/stackitcloud/stackit-sdk-go/core v0.21.1 h1:Y/PcAgM7DPYMNqum0MLv4n1mF9ieuevzcCIZYQfm3Ts= github.com/stackitcloud/stackit-sdk-go/core v0.21.1/go.mod h1:osMglDby4csGZ5sIfhNyYq1bS1TxIdPY88+skE/kkmI= -github.com/stackitcloud/stackit-sdk-go/services/authorization v0.11.1 h1:gMAZURshmPGIIkLbZQYq+wvr+tAGa5Jdd2xyTpFtGUo= -github.com/stackitcloud/stackit-sdk-go/services/authorization v0.11.1/go.mod h1:/gj9PeF6294awSPeYokbHfZbcWK+6Dr4DQO2Z37eYQU= -github.com/stackitcloud/stackit-sdk-go/services/cdn v1.9.2 h1:Xp4FxCBiTQhqed2tB26fRJJTQST2NwDTiXiacqeTfMI= -github.com/stackitcloud/stackit-sdk-go/services/cdn v1.9.2/go.mod h1:aoFctJ6HPLUqJxOumwFFTPHykpSBx35wR/raw7rjp9k= -github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.4 h1:XIPjrjUemYEf29EXMl9kk/X1uqND8VhvM5qrWdYleYM= -github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.4/go.mod h1:HstEWjyE3Pr2mVdzfx/BvVo3XUisllN+GRr0F52scB8= -github.com/stackitcloud/stackit-sdk-go/services/edge v0.4.1 h1:BniqPDK1pjqXFq07JL5L9IpWFxaOp/5kxptnXKsb/Ks= -github.com/stackitcloud/stackit-sdk-go/services/edge v0.4.1/go.mod h1:UY3xF2A9jkaBoQgLdrAcMn0rCiZdmLAO3edWJUGjjqI= -github.com/stackitcloud/stackit-sdk-go/services/git v0.10.1 h1:3JKXfI5hdcXcRVBjUZg5qprXG5rDmPnM6dsvplMk/vg= -github.com/stackitcloud/stackit-sdk-go/services/git v0.10.1/go.mod h1:3nTaj8IGjNNGYUD2CpuXkXwc5c4giTUmoPggFhjVFxo= -github.com/stackitcloud/stackit-sdk-go/services/iaas v1.3.2 h1:bdjhr77dlp02OWqlzaju4QG8nNraT4bWsxKtGWcQ2EI= -github.com/stackitcloud/stackit-sdk-go/services/iaas v1.3.2/go.mod h1:VlDVK/MW8Obgacl5UPrfB8MSIfu4rS/fSYPI1i/fDac= -github.com/stackitcloud/stackit-sdk-go/services/kms v1.3.0 h1:CMwegmCMidg1yrNy8NtEdMQ/9+28GwI/gOCT3isynls= -github.com/stackitcloud/stackit-sdk-go/services/kms v1.3.0/go.mod h1:Kuem2KiTGZL1i6kL9LLOlvA9M+SatKaJbNWQ7o87Px4= -github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.7.1 h1:2UKKtBg+E5IFUcZAkRyKz1Km+tsA//zGjFQjVWwaXss= -github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.7.1/go.mod h1:3/7s4cDhMBY7u84XjD9aUm649aoPhsBsjfPG/WDUujY= -github.com/stackitcloud/stackit-sdk-go/services/logme v0.25.4 h1:HbV75SJtvpQPKKLrHswqipF4gHpEuH8b5NtGgVRI5MI= -github.com/stackitcloud/stackit-sdk-go/services/logme v0.25.4/go.mod h1:MKUfkOdJkkC7qZV0inkyaVAHy2yye3PcO2YYk7e7Zso= -github.com/stackitcloud/stackit-sdk-go/services/logs v0.5.0 h1:Tg7sKlkJUOcOTsO+QtAfk8cazBlOrVdcQr0NP4QIrRY= -github.com/stackitcloud/stackit-sdk-go/services/logs v0.5.0/go.mod h1:1l/ViyPvQ7xBnKp/ca3c5um8l5hZCRc7E2E9UNVrMSg= -github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.25.4 h1:QunmGUncxdWpsgT7SFaIIhZOicq4eFtOm0itI8I6Mm4= -github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.25.4/go.mod h1:vOZc19aIZCajXUDxCqwacKJPiI5YvbrDuwT7uBEc/ps= -github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.6.3 h1:Mjj+U8WYuSbNKFKduyyVhgRla10qM0MEXzEF8mVtNCo= -github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.6.3/go.mod h1:UCzgeCjg29vHecR2KCJ634Aj2Tc4vGOVIiAeMUmKUY0= -github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.5.6 h1:SVRCVrbcn07p8BVJv1MxJ0ji8BzsmTtE1VIMGxWIbEE= -github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.5.6/go.mod h1:Nk7FmNqvNgGG1yxxaiXuZ/9Y8moKWjnlYGeihNSCvd8= -github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.4.3 h1:t2ZDnpwe+2rSXeFbpo/CM1EDs0roDOtUZoMgxKXvSQI= -github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.4.3/go.mod h1:6RTkmbnVfG0ecFTS0oK3+JxJ1JEx98NP8jSbl0Qwjdc= -github.com/stackitcloud/stackit-sdk-go/services/observability v0.16.1 h1:FKeW3uiMXRl6Oau3xE6yBriXh4t7CwPb8QH6PR0uQXM= -github.com/stackitcloud/stackit-sdk-go/services/observability v0.16.1/go.mod h1:RiknJnL3OuU9wb2lyb80Hu+EnlyDQMG8vejDV7B9a5U= -github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.24.4 h1:ppmezCAc8XBW6sdS5lvV6Edx0FOPwC/fosvH3FEIdps= -github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.24.4/go.mod h1:c509eL4M/Qdg4FGT6qTh7r4E07FtB2Ui3sbbLERUBqk= -github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.3 h1:SsjJQPQ7Xtpr64CH1Cjifs5r2ogfzrFzHBWOtNmilSA= -github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.3/go.mod h1:q83l1YJjQPkg0AMZGOLFW/H3ICWFik37tMRV/LgX8PE= -github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.25.4 h1:7q+K1vbUxZjC0eUg5hAg++OVB8RpQhSerX+nuvMYDI0= -github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.25.4/go.mod h1:GE4q9QaKgKFe4CcyYEi3EC2yM1hv0OE/gRGQEomQBEU= -github.com/stackitcloud/stackit-sdk-go/services/redis v0.25.4 h1:nWwKxhkwpDKUx3kX6DOIDmQmak7/flAX2cBf6snoFoU= -github.com/stackitcloud/stackit-sdk-go/services/redis v0.25.4/go.mod h1:p2OGTqy41M9/pTmoRC3hr7p/xS95Ctdmf3FsB5HHq4U= -github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.18.3 h1:83W+OFFnun/8CreT0gxCHDgI7TfU5juU/hMs7kOmYFQ= -github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.18.3/go.mod h1:C9fJVAR09G34tNwUlzV65TEug+F8QUru6REWHgPYasc= -github.com/stackitcloud/stackit-sdk-go/services/scf v0.4.1 h1:1CMEzli6xvrouvDhtHMzcl/qcmHH5C6Y2FQw01LIWjg= -github.com/stackitcloud/stackit-sdk-go/services/scf v0.4.1/go.mod h1:+fgIvT6/kKEHXMkrBXx9cRDP8/dZ37yn1wYSwZ6rOQw= -github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.14.1 h1:G2KhPbC+IDWa35qPnYqrP9pAkZXzclNL44E2gPIrZ0o= -github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.14.1/go.mod h1:kISQzDKxzNZcj0ShgvUpkk7QRbG6tSVUijdgszTqEFc= -github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.6 h1:9idmXyZVnshvF03lpftpvRhzfiaIS4gQMLIFqU5kRr0= -github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.6/go.mod h1:I4j+7qq2zJjN1yoPTJCNmfK1JJJnB+uOTwvHUX7+Xp0= -github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.4 h1:iwvZDes550r7CogpDHFPtg4gWUJspBb3lr7uEchMMRw= -github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.4/go.mod h1:6LiqSDha0bjuqchBpGOlJ/4efGGadmi1jB/mpa5s3Ls= +github.com/stackitcloud/stackit-sdk-go/services/authorization v0.12.0 h1:HxPgBu04j5tj6nfZ2r0l6v4VXC0/tYOGe4sA5Addra8= +github.com/stackitcloud/stackit-sdk-go/services/authorization v0.12.0/go.mod h1:uYI9pHAA2g84jJN25ejFUxa0/JtfpPZqMDkctQ1BzJk= +github.com/stackitcloud/stackit-sdk-go/services/cdn v1.9.4 h1:6xBogGvhlw/F74g2aK1iSRoOUdiP37pjRK9DTgNZF3o= +github.com/stackitcloud/stackit-sdk-go/services/cdn v1.9.4/go.mod h1:vvWMnaLTsgAj9bTUwrCkC9NN+U4NCXMCOAkU8ExlReE= +github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.6 h1:GBRb49x5Nax/oQQaaf2F3kKwv8DQQOL0TQOC0C/v/Ew= +github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.6/go.mod h1:IX9iL3MigDZUmzwswTJMfYvyi118KAHrFMfjJUy5NYk= +github.com/stackitcloud/stackit-sdk-go/services/edge v0.4.3 h1:TxChb2qbO82JiQEBYClSSD5HZxqKeKJ6dIvkEUCJmbs= +github.com/stackitcloud/stackit-sdk-go/services/edge v0.4.3/go.mod h1:KVWvQHb7CQLD9DzA4Np3WmakiCCsrHaCXvFEnOQ7nPk= +github.com/stackitcloud/stackit-sdk-go/services/git v0.10.3 h1:VIjkSofZz9utOOkBdNZCIb07P/JdKc1kHV1P8Rq9dLc= +github.com/stackitcloud/stackit-sdk-go/services/git v0.10.3/go.mod h1:EJk1Ss9GTel2NPIu/w3+x9XcQcEd2k3ibea5aQDzVhQ= +github.com/stackitcloud/stackit-sdk-go/services/iaas v1.3.5 h1:W57+XRa8wTLsi5CV9Tqa7mGgt/PvlRM//RurXSmvII8= +github.com/stackitcloud/stackit-sdk-go/services/iaas v1.3.5/go.mod h1:lTWjW57eAq1bwfM6nsNinhoBr3MHFW/GaFasdAsYfDM= +github.com/stackitcloud/stackit-sdk-go/services/kms v1.3.2 h1:2ulSL2IkIAKND59eAjbEhVkOoBMyvm48ojwz1a3t0U0= +github.com/stackitcloud/stackit-sdk-go/services/kms v1.3.2/go.mod h1:cuIaMMiHeHQsbvy7BOFMutoV3QtN+ZBx7Tg3GmYUw7s= +github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.7.3 h1:d/qIj+XNaqByVbLvwpWoA0Ekv0yrONWyNswg4/jGX7Y= +github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v1.7.3/go.mod h1:ClPE4TOM1FeaJiwTXvApq4gWaSgTLq6nU3PPHAIQDN4= +github.com/stackitcloud/stackit-sdk-go/services/logme v0.25.6 h1:4x30lC+YBmo7XpsAzTn0W+C/oP5flnLVgIh5u3O/P0o= +github.com/stackitcloud/stackit-sdk-go/services/logme v0.25.6/go.mod h1:ewaYUiZcBTSS6urE5zEJBPCqxu70w2IjnBHCvnKdFKE= +github.com/stackitcloud/stackit-sdk-go/services/logs v0.5.2 h1:vr4atxFRT+EL+DqONMT5R44f7AzEMbePa9U7PEE0THU= +github.com/stackitcloud/stackit-sdk-go/services/logs v0.5.2/go.mod h1:CAPsiTX7osAImfrG5RnIjaJ/Iz3QpoBKuH2fS346wuQ= +github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.25.6 h1:Y/byRjX2u/OZl0gKS/Rau6ob2bDyv26xnw6A6JNkKJk= +github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.25.6/go.mod h1:sY66ZgCgBc1mScPV95ek5WtUEGYizdP1RMsGaqbdbhw= +github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.6.5 h1:nT/H4WvYaMKWtoE1QtXGuKjlmh7FW+efG3xElRsJhsI= +github.com/stackitcloud/stackit-sdk-go/services/modelserving v0.6.5/go.mod h1:VWaQAtaAXjWhs1WDG/ZSRpCtIx1NK82Q4ZnKcOdthK4= +github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.5.8 h1:S7t4wcT6SN8ZzdoY8d6VbF903zFpGjzqrU0FN27rJPg= +github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.5.8/go.mod h1:CdrhFUsBO7/iJleCc2yQjDChIbG6YaxKNBQRNCjgcF4= +github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.4.5 h1:4gpvB6t7d2lLjInoTxcvjL9jCpBl5EDfYe5yUtR1MvA= +github.com/stackitcloud/stackit-sdk-go/services/objectstorage v1.4.5/go.mod h1:Bdcd59sRySyhfSUCy+5BNkp5w9PECmrywdvt+ORMKnI= +github.com/stackitcloud/stackit-sdk-go/services/observability v0.16.3 h1:J/R6iBALMiNpg+JDEx1adH50TM4UTF/KBYFuHENMKIs= +github.com/stackitcloud/stackit-sdk-go/services/observability v0.16.3/go.mod h1:9KdrXC5JS30Ay3mR0adb3vNdhca+qxiy/cPF5P4wehQ= +github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.24.6 h1:oTVx1+O177Ojn8OvXIOUbRSwtx7L59jhxDPrZEQFOfQ= +github.com/stackitcloud/stackit-sdk-go/services/opensearch v0.24.6/go.mod h1:6ZBeCCY6qG8w1oK7osf61Egyv3mp7Ahv6GDGxiarDGo= +github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.5 h1:H67e3KnHQx954yI8fuQmxXwRf/myqAdLg2KvxImp00g= +github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.3.5/go.mod h1:xmAWk9eom8wznvLuLfm0F4xyeiBX8LaggXsKFmos+dw= +github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.25.6 h1:+TFfl1ON/uM5aO0FdkBNYKBa7vx0zrCYVtX6zvqQYBA= +github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v0.25.6/go.mod h1:hnhvlLX1Y71R8KIQqLBeoSZqkU5ZJOG0J4wz0LeUdaw= +github.com/stackitcloud/stackit-sdk-go/services/redis v0.25.6 h1:CXM9cZ9WeTyJd+Aw/hnJnDsKRVAQi4qgtd0RJ3zoPwo= +github.com/stackitcloud/stackit-sdk-go/services/redis v0.25.6/go.mod h1:KJNceOHRefjku1oVBoHG7idCS/SeW42WJ+55bN3AxrQ= +github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.18.5 h1:MZ5aTO2NQ1Jecmi67ByGskve5nKXHl91fE+z+vFjxt4= +github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.18.5/go.mod h1:CJLmdqWvJm5/3+lXPDKu8k4WXs2UG8euGoqQX5xE79k= +github.com/stackitcloud/stackit-sdk-go/services/scf v0.4.3 h1:ZM3V8ON60jbQuSQsXP+7pdw7uleGfNYrM2dc/mNob9Y= +github.com/stackitcloud/stackit-sdk-go/services/scf v0.4.3/go.mod h1:VYD+ErIhDLulexh3vpDTRhPTYQVoVfyW8DPD79Q8I+s= +github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.14.3 h1:3hZSg3z+4AXa5LbR2Vl38VmSA83ABItE63E53LuyWv8= +github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.14.3/go.mod h1:5unx5r0IgeFCtJDEgsWddtgKvYSw442FDNdhtfyJnQI= +github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.8 h1:LLyANBzE8sQa0/49tQBqq4sVLhNgwdqCeQm76srJHWw= +github.com/stackitcloud/stackit-sdk-go/services/serverbackup v1.3.8/go.mod h1:/bmg57XZu+bGczzcoumrukiGMPGzI2mOyTT4BVIQUBs= +github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.6 h1:sQ3fdtUjgIL2Ul8nRYVVacHOwi5aSMTGGbYVL30oQBU= +github.com/stackitcloud/stackit-sdk-go/services/serverupdate v1.2.6/go.mod h1:3fjlL+9YtuI9Oocl1ZeYIK48ImtY4DwPggFhqAygr7o= github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.11.6 h1:WU76mZkJP6diMDjGFqM8On6fZhUDmGcy6ppX0+kWx9Y= github.com/stackitcloud/stackit-sdk-go/services/serviceaccount v0.11.6/go.mod h1:hRllU+yEJM6ovrLeXwVeT5hI70ftPKjX4z/Nj8TZqJw= -github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.2.5 h1:P2lqx/WGqwTDQVPxFh4NbU6ygg52J33ClIDrCFWomAc= -github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.2.5/go.mod h1:hwk3gEL1l9dVM4HWGaV8eM+Yxb4dEFENPN15LYP85gI= +github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.2.7 h1:M2PYLF8k3zmAwYWSKfUiCTNTXr7ROGuJganVVEQA3YI= +github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v1.2.7/go.mod h1:jitkQuP2K/SH63Qor0C4pcqz1GDCy/lK2H4t8/VDse4= github.com/stackitcloud/stackit-sdk-go/services/sfs v0.3.0 h1:4567q2dFp3Hw+5Kx+NLDKDcMWsRHMazTlh5aBrhlkXs= github.com/stackitcloud/stackit-sdk-go/services/sfs v0.3.0/go.mod h1:r5lBwzJpJe2xBIYctkVIIpaZ41Y6vUEpkmsWR2VoQJs= -github.com/stackitcloud/stackit-sdk-go/services/ske v1.6.1 h1:gWC/4rCroldoHtlSu1WMhYOZqXsNSoVCiLr/uQcIN1I= -github.com/stackitcloud/stackit-sdk-go/services/ske v1.6.1/go.mod h1:gMb+Jx6OmkZ12GxVXf8UffSVQbkc+OO/Ml6AXz9ifhg= -github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.4.1 h1:6MJdy1xmdE+uOo/F8mR5HSldjPSHpdhwuqS3u9m2EWQ= -github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.4.1/go.mod h1:XLr3ZfrT1g8ZZMm7A6RXOPBuhBkikdUN2o/+/Y+Hu+g= -github.com/stackitcloud/terraform-provider-stackit v0.80.0 h1:tl0tx8OHhZL92GE1iHEpXO3gVZYNsx9WlhwLuL1aC8Q= -github.com/stackitcloud/terraform-provider-stackit v0.80.0/go.mod h1:vk4zcxlTm19DX6nNWZdNPiPyJc5175PJiLUbLBGisGQ= +github.com/stackitcloud/stackit-sdk-go/services/ske v1.6.3 h1:c+nQMvSml08cdRF1kE24vCw0r/l56olP/svQyhcnKOs= +github.com/stackitcloud/stackit-sdk-go/services/ske v1.6.3/go.mod h1:1Jr+ImrmPERxbYnlTy6O2aSZYNnREf2qQyysv6YC1RY= +github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.4.3 h1:AQrcr+qeIuZob+3TT2q1L4WOPtpsu5SEpkTnOUHDqfE= +github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.4.3/go.mod h1:8BBGC69WFXWWmKgzSjgE4HvsI7pEgO0RN2cASwuPJ18= +github.com/stackitcloud/terraform-provider-stackit v0.81.0 h1:cn7kxRh6HaJfftltBpzPvpExCLWv14SAvIjkWCm/vnA= +github.com/stackitcloud/terraform-provider-stackit v0.81.0/go.mod h1:s3bbv1ArMoxMLNESXmAKIilc1dEVagOPLlf7qBKIcUk= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/teambition/rrule-go v1.8.2 h1:lIjpjvWTj9fFUZCmuoVDrKVOtdiyzbzc93qTmRVe/J8= github.com/teambition/rrule-go v1.8.2/go.mod h1:Ieq5AbrKGciP1V//Wq8ktsTXwSwJHDD5mD/wLBGl3p4= github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI= @@ -176,12 +176,9 @@ golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= golang.org/x/tools v0.41.0 h1:a9b8iMweWG+S0OBnlU36rzLp20z1Rp10w+IY2czHTQc= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7 h1:pFyd6EwwL2TqFf8emdthzeX+gZE1ElRq3iM8pui4KBY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= -google.golang.org/grpc v1.75.1 h1:/ODCNEuf9VghjgO3rqLcfg8fiOP0nSluljWFlDxELLI= -google.golang.org/grpc v1.75.1/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= -google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw= -google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 h1:gRkg/vSppuSQoDjxyiGfN4Upv/h/DQmIR10ZU8dh4Ww= +google.golang.org/grpc v1.77.0 h1:wVVY6/8cGA6vvffn+wWK5ToddbgdU3d8MNENr4evgXM= +google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/sdk/dotnet/GetLogsAccessToken.cs b/sdk/dotnet/GetLogsAccessToken.cs new file mode 100644 index 0000000..c4db97a --- /dev/null +++ b/sdk/dotnet/GetLogsAccessToken.cs @@ -0,0 +1,221 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit +{ + public static class GetLogsAccessToken + { + /// + /// Logs access token data source schema. Uses the `DefaultRegion` specified in the provider configuration as a fallback in case no `Region` is defined on datasource level. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_logs_access_token" "accessToken" { + /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// region = "eu01" + /// instance_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// access_token_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Task InvokeAsync(GetLogsAccessTokenArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("stackit:index/getLogsAccessToken:getLogsAccessToken", args ?? new GetLogsAccessTokenArgs(), options.WithDefaults()); + + /// + /// Logs access token data source schema. Uses the `DefaultRegion` specified in the provider configuration as a fallback in case no `Region` is defined on datasource level. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_logs_access_token" "accessToken" { + /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// region = "eu01" + /// instance_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// access_token_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Output Invoke(GetLogsAccessTokenInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getLogsAccessToken:getLogsAccessToken", args ?? new GetLogsAccessTokenInvokeArgs(), options.WithDefaults()); + + /// + /// Logs access token data source schema. Uses the `DefaultRegion` specified in the provider configuration as a fallback in case no `Region` is defined on datasource level. + /// + /// ## Example Usage + /// + /// ```terraform + /// data "stackit_logs_access_token" "accessToken" { + /// project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// region = "eu01" + /// instance_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// access_token_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + /// } + /// ``` + /// + public static Output Invoke(GetLogsAccessTokenInvokeArgs args, InvokeOutputOptions options) + => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getLogsAccessToken:getLogsAccessToken", args ?? new GetLogsAccessTokenInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetLogsAccessTokenArgs : global::Pulumi.InvokeArgs + { + /// + /// The access token ID + /// + [Input("accessTokenId", required: true)] + public string AccessTokenId { get; set; } = null!; + + /// + /// The Logs instance ID associated with the access token + /// + [Input("instanceId", required: true)] + public string InstanceId { get; set; } = null!; + + /// + /// STACKIT project ID associated with the Logs access token + /// + [Input("projectId", required: true)] + public string ProjectId { get; set; } = null!; + + /// + /// STACKIT region name the resource is located in. If not defined, the provider region is used. + /// + [Input("region")] + public string? Region { get; set; } + + public GetLogsAccessTokenArgs() + { + } + public static new GetLogsAccessTokenArgs Empty => new GetLogsAccessTokenArgs(); + } + + public sealed class GetLogsAccessTokenInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The access token ID + /// + [Input("accessTokenId", required: true)] + public Input AccessTokenId { get; set; } = null!; + + /// + /// The Logs instance ID associated with the access token + /// + [Input("instanceId", required: true)] + public Input InstanceId { get; set; } = null!; + + /// + /// STACKIT project ID associated with the Logs access token + /// + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + /// + /// STACKIT region name the resource is located in. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + public GetLogsAccessTokenInvokeArgs() + { + } + public static new GetLogsAccessTokenInvokeArgs Empty => new GetLogsAccessTokenInvokeArgs(); + } + + + [OutputType] + public sealed class GetLogsAccessTokenResult + { + /// + /// The access token ID + /// + public readonly string AccessTokenId; + /// + /// The user who created the access token + /// + public readonly string Creator; + /// + /// The description of the access token + /// + public readonly string Description; + /// + /// The displayed name of the access token + /// + public readonly string DisplayName; + /// + /// Indicates if the access token can expire + /// + public readonly bool Expires; + public readonly string Id; + /// + /// The Logs instance ID associated with the access token + /// + public readonly string InstanceId; + /// + /// The access permissions granted to the access token. Possible values: `Read`, `Write`. + /// + public readonly ImmutableArray Permissions; + /// + /// STACKIT project ID associated with the Logs access token + /// + public readonly string ProjectId; + /// + /// STACKIT region name the resource is located in. If not defined, the provider region is used. + /// + public readonly string? Region; + /// + /// The status of the access token. Possible values are: `Active`, `Expired`. + /// + public readonly string Status; + /// + /// The date and time until an access token is valid to (inclusively) + /// + public readonly string ValidUntil; + + [OutputConstructor] + private GetLogsAccessTokenResult( + string accessTokenId, + + string creator, + + string description, + + string displayName, + + bool expires, + + string id, + + string instanceId, + + ImmutableArray permissions, + + string projectId, + + string? region, + + string status, + + string validUntil) + { + AccessTokenId = accessTokenId; + Creator = creator; + Description = description; + DisplayName = displayName; + Expires = expires; + Id = id; + InstanceId = instanceId; + Permissions = permissions; + ProjectId = projectId; + Region = region; + Status = status; + ValidUntil = validUntil; + } + } +} diff --git a/sdk/dotnet/GetLogsInstance.cs b/sdk/dotnet/GetLogsInstance.cs index 8bc502b..a65f17a 100644 --- a/sdk/dotnet/GetLogsInstance.cs +++ b/sdk/dotnet/GetLogsInstance.cs @@ -12,9 +12,7 @@ namespace Pulumi.Stackit public static class GetLogsInstance { /// - /// Logs instance data source schema. - /// - /// > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. + /// Logs instance data source schema. Uses the `DefaultRegion` specified in the provider configuration as a fallback in case no `Region` is defined on datasource level. /// /// ## Example Usage /// @@ -30,9 +28,7 @@ public static Task InvokeAsync(GetLogsInstanceArgs args, => global::Pulumi.Deployment.Instance.InvokeAsync("stackit:index/getLogsInstance:getLogsInstance", args ?? new GetLogsInstanceArgs(), options.WithDefaults()); /// - /// Logs instance data source schema. - /// - /// > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. + /// Logs instance data source schema. Uses the `DefaultRegion` specified in the provider configuration as a fallback in case no `Region` is defined on datasource level. /// /// ## Example Usage /// @@ -48,9 +44,7 @@ public static Output Invoke(GetLogsInstanceInvokeArgs arg => global::Pulumi.Deployment.Instance.Invoke("stackit:index/getLogsInstance:getLogsInstance", args ?? new GetLogsInstanceInvokeArgs(), options.WithDefaults()); /// - /// Logs instance data source schema. - /// - /// > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. + /// Logs instance data source schema. Uses the `DefaultRegion` specified in the provider configuration as a fallback in case no `Region` is defined on datasource level. /// /// ## Example Usage /// diff --git a/sdk/dotnet/GetNetwork.cs b/sdk/dotnet/GetNetwork.cs index f191e50..9262cb6 100644 --- a/sdk/dotnet/GetNetwork.cs +++ b/sdk/dotnet/GetNetwork.cs @@ -73,7 +73,6 @@ public sealed class GetNetworkArgs : global::Pulumi.InvokeArgs public string ProjectId { get; set; } = null!; /// - /// Can only be used when experimental "network" is set. This is likely going to undergo significant changes or be removed in the future. /// The resource region. If not defined, the provider region is used. /// [Input("region")] @@ -100,7 +99,6 @@ public sealed class GetNetworkInvokeArgs : global::Pulumi.InvokeArgs public Input ProjectId { get; set; } = null!; /// - /// Can only be used when experimental "network" is set. This is likely going to undergo significant changes or be removed in the future. /// The resource region. If not defined, the provider region is used. /// [Input("region")] @@ -116,6 +114,10 @@ public GetNetworkInvokeArgs() [OutputType] public sealed class GetNetworkResult { + /// + /// Shows if DHCP is enabled for the network. + /// + public readonly bool Dhcp; public readonly string Id; /// /// The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway. @@ -186,7 +188,6 @@ public sealed class GetNetworkResult /// public readonly string PublicIp; /// - /// Can only be used when experimental "network" is set. This is likely going to undergo significant changes or be removed in the future. /// The resource region. If not defined, the provider region is used. /// public readonly string? Region; @@ -195,13 +196,14 @@ public sealed class GetNetworkResult /// public readonly bool Routed; /// - /// Can only be used when experimental "network" is set. This is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. /// The ID of the routing table associated with the network. /// public readonly string RoutingTableId; [OutputConstructor] private GetNetworkResult( + bool dhcp, + string id, string ipv4Gateway, @@ -244,6 +246,7 @@ private GetNetworkResult( string routingTableId) { + Dhcp = dhcp; Id = id; Ipv4Gateway = ipv4Gateway; Ipv4Nameservers = ipv4Nameservers; diff --git a/sdk/dotnet/GetObservabilityInstance.cs b/sdk/dotnet/GetObservabilityInstance.cs index c878129..b0806e4 100644 --- a/sdk/dotnet/GetObservabilityInstance.cs +++ b/sdk/dotnet/GetObservabilityInstance.cs @@ -123,6 +123,14 @@ public sealed class GetObservabilityInstanceResult /// public readonly bool GrafanaAdminEnabled; /// + /// Specifies an initial Grafana admin password. + /// + public readonly string GrafanaInitialAdminPassword; + /// + /// Specifies an initial Grafana admin username. + /// + public readonly string GrafanaInitialAdminUser; + /// /// If true, anyone can access Grafana dashboards without logging in. /// public readonly bool GrafanaPublicReadAccess; @@ -216,6 +224,10 @@ private GetObservabilityInstanceResult( bool grafanaAdminEnabled, + string grafanaInitialAdminPassword, + + string grafanaInitialAdminUser, + bool grafanaPublicReadAccess, string grafanaUrl, @@ -269,6 +281,8 @@ private GetObservabilityInstanceResult( AlertingUrl = alertingUrl; DashboardUrl = dashboardUrl; GrafanaAdminEnabled = grafanaAdminEnabled; + GrafanaInitialAdminPassword = grafanaInitialAdminPassword; + GrafanaInitialAdminUser = grafanaInitialAdminUser; GrafanaPublicReadAccess = grafanaPublicReadAccess; GrafanaUrl = grafanaUrl; Id = id; diff --git a/sdk/dotnet/Inputs/CdnDistributionConfigBackendArgs.cs b/sdk/dotnet/Inputs/CdnDistributionConfigBackendArgs.cs index 0a83e40..f4bcbd6 100644 --- a/sdk/dotnet/Inputs/CdnDistributionConfigBackendArgs.cs +++ b/sdk/dotnet/Inputs/CdnDistributionConfigBackendArgs.cs @@ -12,11 +12,23 @@ namespace Pulumi.Stackit.Inputs public sealed class CdnDistributionConfigBackendArgs : global::Pulumi.ResourceArgs { + /// + /// The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + /// + [Input("bucketUrl")] + public Input? BucketUrl { get; set; } + + /// + /// The credentials for the bucket. Required if type is 'bucket'. + /// + [Input("credentials")] + public Input? Credentials { get; set; } + [Input("geofencing")] private InputMap>? _geofencing; /// - /// A map of URLs to a list of countries where content is allowed. + /// The configured type http to configure countries where content is allowed. A map of URLs to a list of countries /// public InputMap> Geofencing { @@ -28,7 +40,7 @@ public InputMap> Geofencing private InputMap? _originRequestHeaders; /// - /// The configured origin request headers for the backend + /// The configured type http origin request headers for the backend /// public InputMap OriginRequestHeaders { @@ -37,13 +49,19 @@ public InputMap OriginRequestHeaders } /// - /// The configured backend type for the distribution + /// The configured backend type http for the distribution + /// + [Input("originUrl")] + public Input? OriginUrl { get; set; } + + /// + /// The region where the bucket is hosted. Required if type is 'bucket'. /// - [Input("originUrl", required: true)] - public Input OriginUrl { get; set; } = null!; + [Input("region")] + public Input? Region { get; set; } /// - /// The configured backend type. Possible values are: `Http`. + /// The configured backend type. Possible values are: `Http`, `Bucket`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Inputs/CdnDistributionConfigBackendCredentialsArgs.cs b/sdk/dotnet/Inputs/CdnDistributionConfigBackendCredentialsArgs.cs new file mode 100644 index 0000000..527d10e --- /dev/null +++ b/sdk/dotnet/Inputs/CdnDistributionConfigBackendCredentialsArgs.cs @@ -0,0 +1,52 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Inputs +{ + + public sealed class CdnDistributionConfigBackendCredentialsArgs : global::Pulumi.ResourceArgs + { + [Input("accessKeyId", required: true)] + private Input? _accessKeyId; + + /// + /// The access key for the bucket. Required if type is 'bucket'. + /// + public Input? AccessKeyId + { + get => _accessKeyId; + set + { + var emptySecret = Output.CreateSecret(0); + _accessKeyId = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); + } + } + + [Input("secretAccessKey", required: true)] + private Input? _secretAccessKey; + + /// + /// The access key for the bucket. Required if type is 'bucket'. + /// + public Input? SecretAccessKey + { + get => _secretAccessKey; + set + { + var emptySecret = Output.CreateSecret(0); + _secretAccessKey = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); + } + } + + public CdnDistributionConfigBackendCredentialsArgs() + { + } + public static new CdnDistributionConfigBackendCredentialsArgs Empty => new CdnDistributionConfigBackendCredentialsArgs(); + } +} diff --git a/sdk/dotnet/Inputs/CdnDistributionConfigBackendCredentialsGetArgs.cs b/sdk/dotnet/Inputs/CdnDistributionConfigBackendCredentialsGetArgs.cs new file mode 100644 index 0000000..f699e5b --- /dev/null +++ b/sdk/dotnet/Inputs/CdnDistributionConfigBackendCredentialsGetArgs.cs @@ -0,0 +1,52 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Inputs +{ + + public sealed class CdnDistributionConfigBackendCredentialsGetArgs : global::Pulumi.ResourceArgs + { + [Input("accessKeyId", required: true)] + private Input? _accessKeyId; + + /// + /// The access key for the bucket. Required if type is 'bucket'. + /// + public Input? AccessKeyId + { + get => _accessKeyId; + set + { + var emptySecret = Output.CreateSecret(0); + _accessKeyId = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); + } + } + + [Input("secretAccessKey", required: true)] + private Input? _secretAccessKey; + + /// + /// The access key for the bucket. Required if type is 'bucket'. + /// + public Input? SecretAccessKey + { + get => _secretAccessKey; + set + { + var emptySecret = Output.CreateSecret(0); + _secretAccessKey = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); + } + } + + public CdnDistributionConfigBackendCredentialsGetArgs() + { + } + public static new CdnDistributionConfigBackendCredentialsGetArgs Empty => new CdnDistributionConfigBackendCredentialsGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/CdnDistributionConfigBackendGetArgs.cs b/sdk/dotnet/Inputs/CdnDistributionConfigBackendGetArgs.cs index a98bb6f..f85bd15 100644 --- a/sdk/dotnet/Inputs/CdnDistributionConfigBackendGetArgs.cs +++ b/sdk/dotnet/Inputs/CdnDistributionConfigBackendGetArgs.cs @@ -12,11 +12,23 @@ namespace Pulumi.Stackit.Inputs public sealed class CdnDistributionConfigBackendGetArgs : global::Pulumi.ResourceArgs { + /// + /// The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + /// + [Input("bucketUrl")] + public Input? BucketUrl { get; set; } + + /// + /// The credentials for the bucket. Required if type is 'bucket'. + /// + [Input("credentials")] + public Input? Credentials { get; set; } + [Input("geofencing")] private InputMap>? _geofencing; /// - /// A map of URLs to a list of countries where content is allowed. + /// The configured type http to configure countries where content is allowed. A map of URLs to a list of countries /// public InputMap> Geofencing { @@ -28,7 +40,7 @@ public InputMap> Geofencing private InputMap? _originRequestHeaders; /// - /// The configured origin request headers for the backend + /// The configured type http origin request headers for the backend /// public InputMap OriginRequestHeaders { @@ -37,13 +49,19 @@ public InputMap OriginRequestHeaders } /// - /// The configured backend type for the distribution + /// The configured backend type http for the distribution + /// + [Input("originUrl")] + public Input? OriginUrl { get; set; } + + /// + /// The region where the bucket is hosted. Required if type is 'bucket'. /// - [Input("originUrl", required: true)] - public Input OriginUrl { get; set; } = null!; + [Input("region")] + public Input? Region { get; set; } /// - /// The configured backend type. Possible values are: `Http`. + /// The configured backend type. Possible values are: `Http`, `Bucket`. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Inputs/ObservabilityAlertgroupRuleArgs.cs b/sdk/dotnet/Inputs/ObservabilityAlertgroupRuleArgs.cs index 1ea2226..387575e 100644 --- a/sdk/dotnet/Inputs/ObservabilityAlertgroupRuleArgs.cs +++ b/sdk/dotnet/Inputs/ObservabilityAlertgroupRuleArgs.cs @@ -15,8 +15,8 @@ public sealed class ObservabilityAlertgroupRuleArgs : global::Pulumi.ResourceArg /// /// The name of the alert rule. Is the identifier and must be unique in the group. /// - [Input("alert", required: true)] - public Input Alert { get; set; } = null!; + [Input("alert")] + public Input? Alert { get; set; } [Input("annotations")] private InputMap? _annotations; @@ -54,6 +54,12 @@ public InputMap Labels set => _labels = value; } + /// + /// The name of the metric. It's the identifier and must be unique in the group. + /// + [Input("record")] + public Input? Record { get; set; } + public ObservabilityAlertgroupRuleArgs() { } diff --git a/sdk/dotnet/Inputs/ObservabilityAlertgroupRuleGetArgs.cs b/sdk/dotnet/Inputs/ObservabilityAlertgroupRuleGetArgs.cs index 2089235..420435d 100644 --- a/sdk/dotnet/Inputs/ObservabilityAlertgroupRuleGetArgs.cs +++ b/sdk/dotnet/Inputs/ObservabilityAlertgroupRuleGetArgs.cs @@ -15,8 +15,8 @@ public sealed class ObservabilityAlertgroupRuleGetArgs : global::Pulumi.Resource /// /// The name of the alert rule. Is the identifier and must be unique in the group. /// - [Input("alert", required: true)] - public Input Alert { get; set; } = null!; + [Input("alert")] + public Input? Alert { get; set; } [Input("annotations")] private InputMap? _annotations; @@ -54,6 +54,12 @@ public InputMap Labels set => _labels = value; } + /// + /// The name of the metric. It's the identifier and must be unique in the group. + /// + [Input("record")] + public Input? Record { get; set; } + public ObservabilityAlertgroupRuleGetArgs() { } diff --git a/sdk/dotnet/Inputs/ObservabilityInstanceAlertConfigRouteArgs.cs b/sdk/dotnet/Inputs/ObservabilityInstanceAlertConfigRouteArgs.cs index cd791f7..9a3f6b0 100644 --- a/sdk/dotnet/Inputs/ObservabilityInstanceAlertConfigRouteArgs.cs +++ b/sdk/dotnet/Inputs/ObservabilityInstanceAlertConfigRouteArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Stackit.Inputs public sealed class ObservabilityInstanceAlertConfigRouteArgs : global::Pulumi.ResourceArgs { + /// + /// Whether an alert should continue matching subsequent sibling nodes. + /// + [Input("continue")] + public Input? Continue { get; set; } + [Input("groupBies")] private InputList? _groupBies; diff --git a/sdk/dotnet/Inputs/ObservabilityInstanceAlertConfigRouteGetArgs.cs b/sdk/dotnet/Inputs/ObservabilityInstanceAlertConfigRouteGetArgs.cs index 530b624..54a966b 100644 --- a/sdk/dotnet/Inputs/ObservabilityInstanceAlertConfigRouteGetArgs.cs +++ b/sdk/dotnet/Inputs/ObservabilityInstanceAlertConfigRouteGetArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Stackit.Inputs public sealed class ObservabilityInstanceAlertConfigRouteGetArgs : global::Pulumi.ResourceArgs { + /// + /// Whether an alert should continue matching subsequent sibling nodes. + /// + [Input("continue")] + public Input? Continue { get; set; } + [Input("groupBies")] private InputList? _groupBies; diff --git a/sdk/dotnet/LogsAccessToken.cs b/sdk/dotnet/LogsAccessToken.cs new file mode 100644 index 0000000..d48689a --- /dev/null +++ b/sdk/dotnet/LogsAccessToken.cs @@ -0,0 +1,304 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit +{ + /// + /// Logs access token resource schema. Uses the `DefaultRegion` specified in the provider configuration as a fallback in case no `Region` is defined on resource level. + /// + /// ## Example Usage + /// + [StackitResourceType("stackit:index/logsAccessToken:LogsAccessToken")] + public partial class LogsAccessToken : global::Pulumi.CustomResource + { + /// + /// The generated access token + /// + [Output("accessToken")] + public Output AccessToken { get; private set; } = null!; + + /// + /// The access token ID + /// + [Output("accessTokenId")] + public Output AccessTokenId { get; private set; } = null!; + + /// + /// The user who created the access token + /// + [Output("creator")] + public Output Creator { get; private set; } = null!; + + /// + /// The description of the access token + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// The displayed name of the access token + /// + [Output("displayName")] + public Output DisplayName { get; private set; } = null!; + + /// + /// Indicates if the access token can expire + /// + [Output("expires")] + public Output Expires { get; private set; } = null!; + + /// + /// The Logs instance ID associated with the access token + /// + [Output("instanceId")] + public Output InstanceId { get; private set; } = null!; + + /// + /// A lifetime period for an access token in days. If unset the token will not expire. + /// + [Output("lifetime")] + public Output Lifetime { get; private set; } = null!; + + /// + /// The access permissions granted to the access token. Possible values: `Read`, `Write`. + /// + [Output("permissions")] + public Output> Permissions { get; private set; } = null!; + + /// + /// STACKIT project ID associated with the Logs access token + /// + [Output("projectId")] + public Output ProjectId { get; private set; } = null!; + + /// + /// STACKIT region name the resource is located in. If not defined, the provider region is used. + /// + [Output("region")] + public Output Region { get; private set; } = null!; + + /// + /// The status of the access token. Possible values are: `Active`, `Expired`. + /// + [Output("status")] + public Output Status { get; private set; } = null!; + + /// + /// The date and time until an access token is valid to (inclusively) + /// + [Output("validUntil")] + public Output ValidUntil { get; private set; } = null!; + + + /// + /// Create a LogsAccessToken resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public LogsAccessToken(string name, LogsAccessTokenArgs args, CustomResourceOptions? options = null) + : base("stackit:index/logsAccessToken:LogsAccessToken", name, args ?? new LogsAccessTokenArgs(), MakeResourceOptions(options, "")) + { + } + + private LogsAccessToken(string name, Input id, LogsAccessTokenState? state = null, CustomResourceOptions? options = null) + : base("stackit:index/logsAccessToken:LogsAccessToken", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/stackitcloud/pulumi-stackit", + AdditionalSecretOutputs = + { + "accessToken", + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing LogsAccessToken resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static LogsAccessToken Get(string name, Input id, LogsAccessTokenState? state = null, CustomResourceOptions? options = null) + { + return new LogsAccessToken(name, id, state, options); + } + } + + public sealed class LogsAccessTokenArgs : global::Pulumi.ResourceArgs + { + /// + /// The description of the access token + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The displayed name of the access token + /// + [Input("displayName", required: true)] + public Input DisplayName { get; set; } = null!; + + /// + /// The Logs instance ID associated with the access token + /// + [Input("instanceId", required: true)] + public Input InstanceId { get; set; } = null!; + + /// + /// A lifetime period for an access token in days. If unset the token will not expire. + /// + [Input("lifetime")] + public Input? Lifetime { get; set; } + + [Input("permissions", required: true)] + private InputList? _permissions; + + /// + /// The access permissions granted to the access token. Possible values: `Read`, `Write`. + /// + public InputList Permissions + { + get => _permissions ?? (_permissions = new InputList()); + set => _permissions = value; + } + + /// + /// STACKIT project ID associated with the Logs access token + /// + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + /// + /// STACKIT region name the resource is located in. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + public LogsAccessTokenArgs() + { + } + public static new LogsAccessTokenArgs Empty => new LogsAccessTokenArgs(); + } + + public sealed class LogsAccessTokenState : global::Pulumi.ResourceArgs + { + [Input("accessToken")] + private Input? _accessToken; + + /// + /// The generated access token + /// + public Input? AccessToken + { + get => _accessToken; + set + { + var emptySecret = Output.CreateSecret(0); + _accessToken = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); + } + } + + /// + /// The access token ID + /// + [Input("accessTokenId")] + public Input? AccessTokenId { get; set; } + + /// + /// The user who created the access token + /// + [Input("creator")] + public Input? Creator { get; set; } + + /// + /// The description of the access token + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The displayed name of the access token + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + /// + /// Indicates if the access token can expire + /// + [Input("expires")] + public Input? Expires { get; set; } + + /// + /// The Logs instance ID associated with the access token + /// + [Input("instanceId")] + public Input? InstanceId { get; set; } + + /// + /// A lifetime period for an access token in days. If unset the token will not expire. + /// + [Input("lifetime")] + public Input? Lifetime { get; set; } + + [Input("permissions")] + private InputList? _permissions; + + /// + /// The access permissions granted to the access token. Possible values: `Read`, `Write`. + /// + public InputList Permissions + { + get => _permissions ?? (_permissions = new InputList()); + set => _permissions = value; + } + + /// + /// STACKIT project ID associated with the Logs access token + /// + [Input("projectId")] + public Input? ProjectId { get; set; } + + /// + /// STACKIT region name the resource is located in. If not defined, the provider region is used. + /// + [Input("region")] + public Input? Region { get; set; } + + /// + /// The status of the access token. Possible values are: `Active`, `Expired`. + /// + [Input("status")] + public Input? Status { get; set; } + + /// + /// The date and time until an access token is valid to (inclusively) + /// + [Input("validUntil")] + public Input? ValidUntil { get; set; } + + public LogsAccessTokenState() + { + } + public static new LogsAccessTokenState Empty => new LogsAccessTokenState(); + } +} diff --git a/sdk/dotnet/LogsInstance.cs b/sdk/dotnet/LogsInstance.cs index e2eab67..3acd0e8 100644 --- a/sdk/dotnet/LogsInstance.cs +++ b/sdk/dotnet/LogsInstance.cs @@ -10,9 +10,7 @@ namespace Pulumi.Stackit { /// - /// Logs instance resource schema. - /// - /// > This resource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. + /// Logs instance resource schema. Uses the `DefaultRegion` specified in the provider configuration as a fallback in case no `Region` is defined on resource level. /// /// ## Example Usage /// diff --git a/sdk/dotnet/Network.cs b/sdk/dotnet/Network.cs index 3cbe839..8d4ad88 100644 --- a/sdk/dotnet/Network.cs +++ b/sdk/dotnet/Network.cs @@ -20,6 +20,12 @@ namespace Pulumi.Stackit [StackitResourceType("stackit:index/network:Network")] public partial class Network : global::Pulumi.CustomResource { + /// + /// If the network has DHCP enabled. Default value is `True`. + /// + [Output("dhcp")] + public Output Dhcp { get; private set; } = null!; + /// /// The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway. /// @@ -199,6 +205,12 @@ public static Network Get(string name, Input id, NetworkState? state = n public sealed class NetworkArgs : global::Pulumi.ResourceArgs { + /// + /// If the network has DHCP enabled. Default value is `True`. + /// + [Input("dhcp")] + public Input? Dhcp { get; set; } + /// /// The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway. /// @@ -334,6 +346,12 @@ public NetworkArgs() public sealed class NetworkState : global::Pulumi.ResourceArgs { + /// + /// If the network has DHCP enabled. Default value is `True`. + /// + [Input("dhcp")] + public Input? Dhcp { get; set; } + /// /// The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway. /// diff --git a/sdk/dotnet/ObservabilityInstance.cs b/sdk/dotnet/ObservabilityInstance.cs index 6e51095..f0b2061 100644 --- a/sdk/dotnet/ObservabilityInstance.cs +++ b/sdk/dotnet/ObservabilityInstance.cs @@ -47,6 +47,18 @@ public partial class ObservabilityInstance : global::Pulumi.CustomResource [Output("grafanaAdminEnabled")] public Output GrafanaAdminEnabled { get; private set; } = null!; + /// + /// Specifies an initial Grafana admin password. + /// + [Output("grafanaInitialAdminPassword")] + public Output GrafanaInitialAdminPassword { get; private set; } = null!; + + /// + /// Specifies an initial Grafana admin username. + /// + [Output("grafanaInitialAdminUser")] + public Output GrafanaInitialAdminUser { get; private set; } = null!; + /// /// If true, anyone can access Grafana dashboards without logging in. /// @@ -197,6 +209,10 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? { Version = Utilities.Version, PluginDownloadURL = "github://api.github.com/stackitcloud/pulumi-stackit", + AdditionalSecretOutputs = + { + "grafanaInitialAdminPassword", + }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. @@ -348,6 +364,29 @@ public InputList Acls [Input("grafanaAdminEnabled")] public Input? GrafanaAdminEnabled { get; set; } + [Input("grafanaInitialAdminPassword")] + private Input? _grafanaInitialAdminPassword; + + /// + /// Specifies an initial Grafana admin password. + /// + [Obsolete(@"This attribute is deprecated and will be removed on July 5, 2026. Use `GrafanaAdminEnabled` instead.")] + public Input? GrafanaInitialAdminPassword + { + get => _grafanaInitialAdminPassword; + set + { + var emptySecret = Output.CreateSecret(0); + _grafanaInitialAdminPassword = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); + } + } + + /// + /// Specifies an initial Grafana admin username. + /// + [Input("grafanaInitialAdminUser")] + public Input? GrafanaInitialAdminUser { get; set; } + /// /// If true, anyone can access Grafana dashboards without logging in. /// diff --git a/sdk/dotnet/Outputs/CdnDistributionConfigBackend.cs b/sdk/dotnet/Outputs/CdnDistributionConfigBackend.cs index 6e20b07..09a7c2f 100644 --- a/sdk/dotnet/Outputs/CdnDistributionConfigBackend.cs +++ b/sdk/dotnet/Outputs/CdnDistributionConfigBackend.cs @@ -14,35 +14,56 @@ namespace Pulumi.Stackit.Outputs public sealed class CdnDistributionConfigBackend { /// - /// A map of URLs to a list of countries where content is allowed. + /// The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + /// + public readonly string? BucketUrl; + /// + /// The credentials for the bucket. Required if type is 'bucket'. + /// + public readonly Outputs.CdnDistributionConfigBackendCredentials? Credentials; + /// + /// The configured type http to configure countries where content is allowed. A map of URLs to a list of countries /// public readonly ImmutableDictionary>? Geofencing; /// - /// The configured origin request headers for the backend + /// The configured type http origin request headers for the backend /// public readonly ImmutableDictionary? OriginRequestHeaders; /// - /// The configured backend type for the distribution + /// The configured backend type http for the distribution /// - public readonly string OriginUrl; + public readonly string? OriginUrl; /// - /// The configured backend type. Possible values are: `Http`. + /// The region where the bucket is hosted. Required if type is 'bucket'. + /// + public readonly string? Region; + /// + /// The configured backend type. Possible values are: `Http`, `Bucket`. /// public readonly string Type; [OutputConstructor] private CdnDistributionConfigBackend( + string? bucketUrl, + + Outputs.CdnDistributionConfigBackendCredentials? credentials, + ImmutableDictionary>? geofencing, ImmutableDictionary? originRequestHeaders, - string originUrl, + string? originUrl, + + string? region, string type) { + BucketUrl = bucketUrl; + Credentials = credentials; Geofencing = geofencing; OriginRequestHeaders = originRequestHeaders; OriginUrl = originUrl; + Region = region; Type = type; } } diff --git a/sdk/dotnet/Outputs/CdnDistributionConfigBackendCredentials.cs b/sdk/dotnet/Outputs/CdnDistributionConfigBackendCredentials.cs new file mode 100644 index 0000000..01179d3 --- /dev/null +++ b/sdk/dotnet/Outputs/CdnDistributionConfigBackendCredentials.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumi-language-dotnet. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Stackit.Outputs +{ + + [OutputType] + public sealed class CdnDistributionConfigBackendCredentials + { + /// + /// The access key for the bucket. Required if type is 'bucket'. + /// + public readonly string AccessKeyId; + /// + /// The access key for the bucket. Required if type is 'bucket'. + /// + public readonly string SecretAccessKey; + + [OutputConstructor] + private CdnDistributionConfigBackendCredentials( + string accessKeyId, + + string secretAccessKey) + { + AccessKeyId = accessKeyId; + SecretAccessKey = secretAccessKey; + } + } +} diff --git a/sdk/dotnet/Outputs/GetCdnDistributionConfigBackendResult.cs b/sdk/dotnet/Outputs/GetCdnDistributionConfigBackendResult.cs index 5f6238b..381f855 100644 --- a/sdk/dotnet/Outputs/GetCdnDistributionConfigBackendResult.cs +++ b/sdk/dotnet/Outputs/GetCdnDistributionConfigBackendResult.cs @@ -14,35 +14,49 @@ namespace Pulumi.Stackit.Outputs public sealed class GetCdnDistributionConfigBackendResult { /// - /// A map of URLs to a list of countries where content is allowed. + /// The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + /// + public readonly string BucketUrl; + /// + /// The configured type http to configure countries where content is allowed. A map of URLs to a list of countries /// public readonly ImmutableDictionary> Geofencing; /// - /// The configured origin request headers for the backend + /// The configured type http origin request headers for the backend /// public readonly ImmutableDictionary OriginRequestHeaders; /// - /// The configured backend type for the distribution + /// The configured backend type http for the distribution /// public readonly string OriginUrl; /// - /// The configured backend type. Possible values are: `Http`. + /// The region where the bucket is hosted. Required if type is 'bucket'. + /// + public readonly string Region; + /// + /// The configured backend type. Possible values are: `Http`, `Bucket`. /// public readonly string Type; [OutputConstructor] private GetCdnDistributionConfigBackendResult( + string bucketUrl, + ImmutableDictionary> geofencing, ImmutableDictionary originRequestHeaders, string originUrl, + string region, + string type) { + BucketUrl = bucketUrl; Geofencing = geofencing; OriginRequestHeaders = originRequestHeaders; OriginUrl = originUrl; + Region = region; Type = type; } } diff --git a/sdk/dotnet/Outputs/GetObservabilityAlertgroupRuleResult.cs b/sdk/dotnet/Outputs/GetObservabilityAlertgroupRuleResult.cs index 5f04756..89b15e5 100644 --- a/sdk/dotnet/Outputs/GetObservabilityAlertgroupRuleResult.cs +++ b/sdk/dotnet/Outputs/GetObservabilityAlertgroupRuleResult.cs @@ -33,6 +33,10 @@ public sealed class GetObservabilityAlertgroupRuleResult /// A map of key:value. Labels to add or overwrite for each alert /// public readonly ImmutableDictionary Labels; + /// + /// The name of the metric. It's the identifier and must be unique in the group. + /// + public readonly string Record; [OutputConstructor] private GetObservabilityAlertgroupRuleResult( @@ -44,13 +48,16 @@ private GetObservabilityAlertgroupRuleResult( string @for, - ImmutableDictionary labels) + ImmutableDictionary labels, + + string record) { Alert = alert; Annotations = annotations; Expression = expression; For = @for; Labels = labels; + Record = record; } } } diff --git a/sdk/dotnet/Outputs/GetObservabilityInstanceAlertConfigRouteResult.cs b/sdk/dotnet/Outputs/GetObservabilityInstanceAlertConfigRouteResult.cs index 558d10d..60d2ff7 100644 --- a/sdk/dotnet/Outputs/GetObservabilityInstanceAlertConfigRouteResult.cs +++ b/sdk/dotnet/Outputs/GetObservabilityInstanceAlertConfigRouteResult.cs @@ -13,6 +13,10 @@ namespace Pulumi.Stackit.Outputs [OutputType] public sealed class GetObservabilityInstanceAlertConfigRouteResult { + /// + /// Whether an alert should continue matching subsequent sibling nodes. + /// + public readonly bool Continue; /// /// The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping. /// @@ -40,6 +44,8 @@ public sealed class GetObservabilityInstanceAlertConfigRouteResult [OutputConstructor] private GetObservabilityInstanceAlertConfigRouteResult( + bool @continue, + ImmutableArray groupBies, string groupInterval, @@ -52,6 +58,7 @@ private GetObservabilityInstanceAlertConfigRouteResult( ImmutableArray routes) { + Continue = @continue; GroupBies = groupBies; GroupInterval = groupInterval; GroupWait = groupWait; diff --git a/sdk/dotnet/Outputs/ObservabilityAlertgroupRule.cs b/sdk/dotnet/Outputs/ObservabilityAlertgroupRule.cs index fc27012..bdfe565 100644 --- a/sdk/dotnet/Outputs/ObservabilityAlertgroupRule.cs +++ b/sdk/dotnet/Outputs/ObservabilityAlertgroupRule.cs @@ -16,7 +16,7 @@ public sealed class ObservabilityAlertgroupRule /// /// The name of the alert rule. Is the identifier and must be unique in the group. /// - public readonly string Alert; + public readonly string? Alert; /// /// A map of key:value. Annotations to add or overwrite for each alert /// @@ -33,10 +33,14 @@ public sealed class ObservabilityAlertgroupRule /// A map of key:value. Labels to add or overwrite for each alert /// public readonly ImmutableDictionary? Labels; + /// + /// The name of the metric. It's the identifier and must be unique in the group. + /// + public readonly string? Record; [OutputConstructor] private ObservabilityAlertgroupRule( - string alert, + string? alert, ImmutableDictionary? annotations, @@ -44,13 +48,16 @@ private ObservabilityAlertgroupRule( string? @for, - ImmutableDictionary? labels) + ImmutableDictionary? labels, + + string? record) { Alert = alert; Annotations = annotations; Expression = expression; For = @for; Labels = labels; + Record = record; } } } diff --git a/sdk/dotnet/Outputs/ObservabilityInstanceAlertConfigRoute.cs b/sdk/dotnet/Outputs/ObservabilityInstanceAlertConfigRoute.cs index 13a9c28..57a3867 100644 --- a/sdk/dotnet/Outputs/ObservabilityInstanceAlertConfigRoute.cs +++ b/sdk/dotnet/Outputs/ObservabilityInstanceAlertConfigRoute.cs @@ -13,6 +13,10 @@ namespace Pulumi.Stackit.Outputs [OutputType] public sealed class ObservabilityInstanceAlertConfigRoute { + /// + /// Whether an alert should continue matching subsequent sibling nodes. + /// + public readonly bool? Continue; /// /// The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping. /// @@ -40,6 +44,8 @@ public sealed class ObservabilityInstanceAlertConfigRoute [OutputConstructor] private ObservabilityInstanceAlertConfigRoute( + bool? @continue, + ImmutableArray groupBies, string? groupInterval, @@ -52,6 +58,7 @@ private ObservabilityInstanceAlertConfigRoute( ImmutableArray routes) { + Continue = @continue; GroupBies = groupBies; GroupInterval = groupInterval; GroupWait = groupWait; diff --git a/sdk/dotnet/PostgresflexInstance.cs b/sdk/dotnet/PostgresflexInstance.cs index 18389e2..93904bc 100644 --- a/sdk/dotnet/PostgresflexInstance.cs +++ b/sdk/dotnet/PostgresflexInstance.cs @@ -23,6 +23,9 @@ public partial class PostgresflexInstance : global::Pulumi.CustomResource [Output("acls")] public Output> Acls { get; private set; } = null!; + /// + /// The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'. + /// [Output("backupSchedule")] public Output BackupSchedule { get; private set; } = null!; @@ -53,6 +56,9 @@ public partial class PostgresflexInstance : global::Pulumi.CustomResource [Output("region")] public Output Region { get; private set; } = null!; + /// + /// How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication. + /// [Output("replicas")] public Output Replicas { get; private set; } = null!; @@ -121,6 +127,9 @@ public InputList Acls set => _acls = value; } + /// + /// The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'. + /// [Input("backupSchedule", required: true)] public Input BackupSchedule { get; set; } = null!; @@ -145,6 +154,9 @@ public InputList Acls [Input("region")] public Input? Region { get; set; } + /// + /// How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication. + /// [Input("replicas", required: true)] public Input Replicas { get; set; } = null!; @@ -174,6 +186,9 @@ public InputList Acls set => _acls = value; } + /// + /// The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'. + /// [Input("backupSchedule")] public Input? BackupSchedule { get; set; } @@ -204,6 +219,9 @@ public InputList Acls [Input("region")] public Input? Region { get; set; } + /// + /// How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication. + /// [Input("replicas")] public Input? Replicas { get; set; } diff --git a/sdk/go/stackit/getLogsAccessToken.go b/sdk/go/stackit/getLogsAccessToken.go new file mode 100644 index 0000000..cde4443 --- /dev/null +++ b/sdk/go/stackit/getLogsAccessToken.go @@ -0,0 +1,167 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// Logs access token data source schema. Uses the `defaultRegion` specified in the provider configuration as a fallback in case no `region` is defined on datasource level. +// +// ## Example Usage +func LookupLogsAccessToken(ctx *pulumi.Context, args *LookupLogsAccessTokenArgs, opts ...pulumi.InvokeOption) (*LookupLogsAccessTokenResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupLogsAccessTokenResult + err := ctx.Invoke("stackit:index/getLogsAccessToken:getLogsAccessToken", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getLogsAccessToken. +type LookupLogsAccessTokenArgs struct { + // The access token ID + AccessTokenId string `pulumi:"accessTokenId"` + // The Logs instance ID associated with the access token + InstanceId string `pulumi:"instanceId"` + // STACKIT project ID associated with the Logs access token + ProjectId string `pulumi:"projectId"` + // STACKIT region name the resource is located in. If not defined, the provider region is used. + Region *string `pulumi:"region"` +} + +// A collection of values returned by getLogsAccessToken. +type LookupLogsAccessTokenResult struct { + // The access token ID + AccessTokenId string `pulumi:"accessTokenId"` + // The user who created the access token + Creator string `pulumi:"creator"` + // The description of the access token + Description string `pulumi:"description"` + // The displayed name of the access token + DisplayName string `pulumi:"displayName"` + // Indicates if the access token can expire + Expires bool `pulumi:"expires"` + Id string `pulumi:"id"` + // The Logs instance ID associated with the access token + InstanceId string `pulumi:"instanceId"` + // The access permissions granted to the access token. Possible values: `read`, `write`. + Permissions []string `pulumi:"permissions"` + // STACKIT project ID associated with the Logs access token + ProjectId string `pulumi:"projectId"` + // STACKIT region name the resource is located in. If not defined, the provider region is used. + Region *string `pulumi:"region"` + // The status of the access token. Possible values are: `active`, `expired`. + Status string `pulumi:"status"` + // The date and time until an access token is valid to (inclusively) + ValidUntil string `pulumi:"validUntil"` +} + +func LookupLogsAccessTokenOutput(ctx *pulumi.Context, args LookupLogsAccessTokenOutputArgs, opts ...pulumi.InvokeOption) LookupLogsAccessTokenResultOutput { + return pulumi.ToOutputWithContext(ctx.Context(), args). + ApplyT(func(v interface{}) (LookupLogsAccessTokenResultOutput, error) { + args := v.(LookupLogsAccessTokenArgs) + options := pulumi.InvokeOutputOptions{InvokeOptions: internal.PkgInvokeDefaultOpts(opts)} + return ctx.InvokeOutput("stackit:index/getLogsAccessToken:getLogsAccessToken", args, LookupLogsAccessTokenResultOutput{}, options).(LookupLogsAccessTokenResultOutput), nil + }).(LookupLogsAccessTokenResultOutput) +} + +// A collection of arguments for invoking getLogsAccessToken. +type LookupLogsAccessTokenOutputArgs struct { + // The access token ID + AccessTokenId pulumi.StringInput `pulumi:"accessTokenId"` + // The Logs instance ID associated with the access token + InstanceId pulumi.StringInput `pulumi:"instanceId"` + // STACKIT project ID associated with the Logs access token + ProjectId pulumi.StringInput `pulumi:"projectId"` + // STACKIT region name the resource is located in. If not defined, the provider region is used. + Region pulumi.StringPtrInput `pulumi:"region"` +} + +func (LookupLogsAccessTokenOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupLogsAccessTokenArgs)(nil)).Elem() +} + +// A collection of values returned by getLogsAccessToken. +type LookupLogsAccessTokenResultOutput struct{ *pulumi.OutputState } + +func (LookupLogsAccessTokenResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupLogsAccessTokenResult)(nil)).Elem() +} + +func (o LookupLogsAccessTokenResultOutput) ToLookupLogsAccessTokenResultOutput() LookupLogsAccessTokenResultOutput { + return o +} + +func (o LookupLogsAccessTokenResultOutput) ToLookupLogsAccessTokenResultOutputWithContext(ctx context.Context) LookupLogsAccessTokenResultOutput { + return o +} + +// The access token ID +func (o LookupLogsAccessTokenResultOutput) AccessTokenId() pulumi.StringOutput { + return o.ApplyT(func(v LookupLogsAccessTokenResult) string { return v.AccessTokenId }).(pulumi.StringOutput) +} + +// The user who created the access token +func (o LookupLogsAccessTokenResultOutput) Creator() pulumi.StringOutput { + return o.ApplyT(func(v LookupLogsAccessTokenResult) string { return v.Creator }).(pulumi.StringOutput) +} + +// The description of the access token +func (o LookupLogsAccessTokenResultOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v LookupLogsAccessTokenResult) string { return v.Description }).(pulumi.StringOutput) +} + +// The displayed name of the access token +func (o LookupLogsAccessTokenResultOutput) DisplayName() pulumi.StringOutput { + return o.ApplyT(func(v LookupLogsAccessTokenResult) string { return v.DisplayName }).(pulumi.StringOutput) +} + +// Indicates if the access token can expire +func (o LookupLogsAccessTokenResultOutput) Expires() pulumi.BoolOutput { + return o.ApplyT(func(v LookupLogsAccessTokenResult) bool { return v.Expires }).(pulumi.BoolOutput) +} + +func (o LookupLogsAccessTokenResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupLogsAccessTokenResult) string { return v.Id }).(pulumi.StringOutput) +} + +// The Logs instance ID associated with the access token +func (o LookupLogsAccessTokenResultOutput) InstanceId() pulumi.StringOutput { + return o.ApplyT(func(v LookupLogsAccessTokenResult) string { return v.InstanceId }).(pulumi.StringOutput) +} + +// The access permissions granted to the access token. Possible values: `read`, `write`. +func (o LookupLogsAccessTokenResultOutput) Permissions() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupLogsAccessTokenResult) []string { return v.Permissions }).(pulumi.StringArrayOutput) +} + +// STACKIT project ID associated with the Logs access token +func (o LookupLogsAccessTokenResultOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v LookupLogsAccessTokenResult) string { return v.ProjectId }).(pulumi.StringOutput) +} + +// STACKIT region name the resource is located in. If not defined, the provider region is used. +func (o LookupLogsAccessTokenResultOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupLogsAccessTokenResult) *string { return v.Region }).(pulumi.StringPtrOutput) +} + +// The status of the access token. Possible values are: `active`, `expired`. +func (o LookupLogsAccessTokenResultOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v LookupLogsAccessTokenResult) string { return v.Status }).(pulumi.StringOutput) +} + +// The date and time until an access token is valid to (inclusively) +func (o LookupLogsAccessTokenResultOutput) ValidUntil() pulumi.StringOutput { + return o.ApplyT(func(v LookupLogsAccessTokenResult) string { return v.ValidUntil }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupLogsAccessTokenResultOutput{}) +} diff --git a/sdk/go/stackit/getLogsInstance.go b/sdk/go/stackit/getLogsInstance.go index 8089156..ed12340 100644 --- a/sdk/go/stackit/getLogsInstance.go +++ b/sdk/go/stackit/getLogsInstance.go @@ -11,9 +11,7 @@ import ( "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" ) -// Logs instance data source schema. -// -// > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. +// Logs instance data source schema. Uses the `defaultRegion` specified in the provider configuration as a fallback in case no `region` is defined on datasource level. // // ## Example Usage func LookupLogsInstance(ctx *pulumi.Context, args *LookupLogsInstanceArgs, opts ...pulumi.InvokeOption) (*LookupLogsInstanceResult, error) { diff --git a/sdk/go/stackit/getNetwork.go b/sdk/go/stackit/getNetwork.go index d4c5f0e..2ed823f 100644 --- a/sdk/go/stackit/getNetwork.go +++ b/sdk/go/stackit/getNetwork.go @@ -30,14 +30,15 @@ type LookupNetworkArgs struct { NetworkId string `pulumi:"networkId"` // STACKIT project ID to which the network is associated. ProjectId string `pulumi:"projectId"` - // Can only be used when experimental "network" is set. This is likely going to undergo significant changes or be removed in the future. // The resource region. If not defined, the provider region is used. Region *string `pulumi:"region"` } // A collection of values returned by getNetwork. type LookupNetworkResult struct { - Id string `pulumi:"id"` + // Shows if DHCP is enabled for the network. + Dhcp bool `pulumi:"dhcp"` + Id string `pulumi:"id"` // The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway. Ipv4Gateway string `pulumi:"ipv4Gateway"` // The IPv4 nameservers of the network. @@ -80,12 +81,10 @@ type LookupNetworkResult struct { ProjectId string `pulumi:"projectId"` // The public IP of the network. PublicIp string `pulumi:"publicIp"` - // Can only be used when experimental "network" is set. This is likely going to undergo significant changes or be removed in the future. // The resource region. If not defined, the provider region is used. Region *string `pulumi:"region"` // Shows if the network is routed and therefore accessible from other networks. Routed bool `pulumi:"routed"` - // Can only be used when experimental "network" is set. This is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. // The ID of the routing table associated with the network. RoutingTableId string `pulumi:"routingTableId"` } @@ -105,7 +104,6 @@ type LookupNetworkOutputArgs struct { NetworkId pulumi.StringInput `pulumi:"networkId"` // STACKIT project ID to which the network is associated. ProjectId pulumi.StringInput `pulumi:"projectId"` - // Can only be used when experimental "network" is set. This is likely going to undergo significant changes or be removed in the future. // The resource region. If not defined, the provider region is used. Region pulumi.StringPtrInput `pulumi:"region"` } @@ -129,6 +127,11 @@ func (o LookupNetworkResultOutput) ToLookupNetworkResultOutputWithContext(ctx co return o } +// Shows if DHCP is enabled for the network. +func (o LookupNetworkResultOutput) Dhcp() pulumi.BoolOutput { + return o.ApplyT(func(v LookupNetworkResult) bool { return v.Dhcp }).(pulumi.BoolOutput) +} + func (o LookupNetworkResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v LookupNetworkResult) string { return v.Id }).(pulumi.StringOutput) } @@ -226,7 +229,6 @@ func (o LookupNetworkResultOutput) PublicIp() pulumi.StringOutput { return o.ApplyT(func(v LookupNetworkResult) string { return v.PublicIp }).(pulumi.StringOutput) } -// Can only be used when experimental "network" is set. This is likely going to undergo significant changes or be removed in the future. // The resource region. If not defined, the provider region is used. func (o LookupNetworkResultOutput) Region() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupNetworkResult) *string { return v.Region }).(pulumi.StringPtrOutput) @@ -237,7 +239,6 @@ func (o LookupNetworkResultOutput) Routed() pulumi.BoolOutput { return o.ApplyT(func(v LookupNetworkResult) bool { return v.Routed }).(pulumi.BoolOutput) } -// Can only be used when experimental "network" is set. This is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. // The ID of the routing table associated with the network. func (o LookupNetworkResultOutput) RoutingTableId() pulumi.StringOutput { return o.ApplyT(func(v LookupNetworkResult) string { return v.RoutingTableId }).(pulumi.StringOutput) diff --git a/sdk/go/stackit/getObservabilityInstance.go b/sdk/go/stackit/getObservabilityInstance.go index c447466..a4da9c2 100644 --- a/sdk/go/stackit/getObservabilityInstance.go +++ b/sdk/go/stackit/getObservabilityInstance.go @@ -44,6 +44,14 @@ type LookupObservabilityInstanceResult struct { DashboardUrl string `pulumi:"dashboardUrl"` // If true, a default Grafana server admin user was created. GrafanaAdminEnabled bool `pulumi:"grafanaAdminEnabled"` + // Specifies an initial Grafana admin password. + // + // Deprecated: This attribute is deprecated and will be removed on July 5, 2026. Use `grafanaAdminEnabled` instead. + GrafanaInitialAdminPassword string `pulumi:"grafanaInitialAdminPassword"` + // Specifies an initial Grafana admin username. + // + // Deprecated: This attribute is deprecated and will be removed on July 5, 2026. Use `grafanaAdminEnabled` instead. + GrafanaInitialAdminUser string `pulumi:"grafanaInitialAdminUser"` // If true, anyone can access Grafana dashboards without logging in. GrafanaPublicReadAccess bool `pulumi:"grafanaPublicReadAccess"` // Specifies Grafana URL. @@ -150,6 +158,20 @@ func (o LookupObservabilityInstanceResultOutput) GrafanaAdminEnabled() pulumi.Bo return o.ApplyT(func(v LookupObservabilityInstanceResult) bool { return v.GrafanaAdminEnabled }).(pulumi.BoolOutput) } +// Specifies an initial Grafana admin password. +// +// Deprecated: This attribute is deprecated and will be removed on July 5, 2026. Use `grafanaAdminEnabled` instead. +func (o LookupObservabilityInstanceResultOutput) GrafanaInitialAdminPassword() pulumi.StringOutput { + return o.ApplyT(func(v LookupObservabilityInstanceResult) string { return v.GrafanaInitialAdminPassword }).(pulumi.StringOutput) +} + +// Specifies an initial Grafana admin username. +// +// Deprecated: This attribute is deprecated and will be removed on July 5, 2026. Use `grafanaAdminEnabled` instead. +func (o LookupObservabilityInstanceResultOutput) GrafanaInitialAdminUser() pulumi.StringOutput { + return o.ApplyT(func(v LookupObservabilityInstanceResult) string { return v.GrafanaInitialAdminUser }).(pulumi.StringOutput) +} + // If true, anyone can access Grafana dashboards without logging in. func (o LookupObservabilityInstanceResultOutput) GrafanaPublicReadAccess() pulumi.BoolOutput { return o.ApplyT(func(v LookupObservabilityInstanceResult) bool { return v.GrafanaPublicReadAccess }).(pulumi.BoolOutput) diff --git a/sdk/go/stackit/init.go b/sdk/go/stackit/init.go index f7a6d93..11d50fb 100644 --- a/sdk/go/stackit/init.go +++ b/sdk/go/stackit/init.go @@ -65,6 +65,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &LogmeCredential{} case "stackit:index/logmeInstance:LogmeInstance": r = &LogmeInstance{} + case "stackit:index/logsAccessToken:LogsAccessToken": + r = &LogsAccessToken{} case "stackit:index/logsInstance:LogsInstance": r = &LogsInstance{} case "stackit:index/mariadbCredential:MariadbCredential": @@ -320,6 +322,11 @@ func init() { "index/logmeInstance", &module{version}, ) + pulumi.RegisterResourceModule( + "stackit", + "index/logsAccessToken", + &module{version}, + ) pulumi.RegisterResourceModule( "stackit", "index/logsInstance", diff --git a/sdk/go/stackit/logsAccessToken.go b/sdk/go/stackit/logsAccessToken.go new file mode 100644 index 0000000..abc2579 --- /dev/null +++ b/sdk/go/stackit/logsAccessToken.go @@ -0,0 +1,390 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stackit + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" +) + +// Logs access token resource schema. Uses the `defaultRegion` specified in the provider configuration as a fallback in case no `region` is defined on resource level. +// +// ## Example Usage +type LogsAccessToken struct { + pulumi.CustomResourceState + + // The generated access token + AccessToken pulumi.StringOutput `pulumi:"accessToken"` + // The access token ID + AccessTokenId pulumi.StringOutput `pulumi:"accessTokenId"` + // The user who created the access token + Creator pulumi.StringOutput `pulumi:"creator"` + // The description of the access token + Description pulumi.StringPtrOutput `pulumi:"description"` + // The displayed name of the access token + DisplayName pulumi.StringOutput `pulumi:"displayName"` + // Indicates if the access token can expire + Expires pulumi.BoolOutput `pulumi:"expires"` + // The Logs instance ID associated with the access token + InstanceId pulumi.StringOutput `pulumi:"instanceId"` + // A lifetime period for an access token in days. If unset the token will not expire. + Lifetime pulumi.IntPtrOutput `pulumi:"lifetime"` + // The access permissions granted to the access token. Possible values: `read`, `write`. + Permissions pulumi.StringArrayOutput `pulumi:"permissions"` + // STACKIT project ID associated with the Logs access token + ProjectId pulumi.StringOutput `pulumi:"projectId"` + // STACKIT region name the resource is located in. If not defined, the provider region is used. + Region pulumi.StringOutput `pulumi:"region"` + // The status of the access token. Possible values are: `active`, `expired`. + Status pulumi.StringOutput `pulumi:"status"` + // The date and time until an access token is valid to (inclusively) + ValidUntil pulumi.StringOutput `pulumi:"validUntil"` +} + +// NewLogsAccessToken registers a new resource with the given unique name, arguments, and options. +func NewLogsAccessToken(ctx *pulumi.Context, + name string, args *LogsAccessTokenArgs, opts ...pulumi.ResourceOption) (*LogsAccessToken, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.DisplayName == nil { + return nil, errors.New("invalid value for required argument 'DisplayName'") + } + if args.InstanceId == nil { + return nil, errors.New("invalid value for required argument 'InstanceId'") + } + if args.Permissions == nil { + return nil, errors.New("invalid value for required argument 'Permissions'") + } + if args.ProjectId == nil { + return nil, errors.New("invalid value for required argument 'ProjectId'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "accessToken", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource LogsAccessToken + err := ctx.RegisterResource("stackit:index/logsAccessToken:LogsAccessToken", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetLogsAccessToken gets an existing LogsAccessToken resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetLogsAccessToken(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *LogsAccessTokenState, opts ...pulumi.ResourceOption) (*LogsAccessToken, error) { + var resource LogsAccessToken + err := ctx.ReadResource("stackit:index/logsAccessToken:LogsAccessToken", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering LogsAccessToken resources. +type logsAccessTokenState struct { + // The generated access token + AccessToken *string `pulumi:"accessToken"` + // The access token ID + AccessTokenId *string `pulumi:"accessTokenId"` + // The user who created the access token + Creator *string `pulumi:"creator"` + // The description of the access token + Description *string `pulumi:"description"` + // The displayed name of the access token + DisplayName *string `pulumi:"displayName"` + // Indicates if the access token can expire + Expires *bool `pulumi:"expires"` + // The Logs instance ID associated with the access token + InstanceId *string `pulumi:"instanceId"` + // A lifetime period for an access token in days. If unset the token will not expire. + Lifetime *int `pulumi:"lifetime"` + // The access permissions granted to the access token. Possible values: `read`, `write`. + Permissions []string `pulumi:"permissions"` + // STACKIT project ID associated with the Logs access token + ProjectId *string `pulumi:"projectId"` + // STACKIT region name the resource is located in. If not defined, the provider region is used. + Region *string `pulumi:"region"` + // The status of the access token. Possible values are: `active`, `expired`. + Status *string `pulumi:"status"` + // The date and time until an access token is valid to (inclusively) + ValidUntil *string `pulumi:"validUntil"` +} + +type LogsAccessTokenState struct { + // The generated access token + AccessToken pulumi.StringPtrInput + // The access token ID + AccessTokenId pulumi.StringPtrInput + // The user who created the access token + Creator pulumi.StringPtrInput + // The description of the access token + Description pulumi.StringPtrInput + // The displayed name of the access token + DisplayName pulumi.StringPtrInput + // Indicates if the access token can expire + Expires pulumi.BoolPtrInput + // The Logs instance ID associated with the access token + InstanceId pulumi.StringPtrInput + // A lifetime period for an access token in days. If unset the token will not expire. + Lifetime pulumi.IntPtrInput + // The access permissions granted to the access token. Possible values: `read`, `write`. + Permissions pulumi.StringArrayInput + // STACKIT project ID associated with the Logs access token + ProjectId pulumi.StringPtrInput + // STACKIT region name the resource is located in. If not defined, the provider region is used. + Region pulumi.StringPtrInput + // The status of the access token. Possible values are: `active`, `expired`. + Status pulumi.StringPtrInput + // The date and time until an access token is valid to (inclusively) + ValidUntil pulumi.StringPtrInput +} + +func (LogsAccessTokenState) ElementType() reflect.Type { + return reflect.TypeOf((*logsAccessTokenState)(nil)).Elem() +} + +type logsAccessTokenArgs struct { + // The description of the access token + Description *string `pulumi:"description"` + // The displayed name of the access token + DisplayName string `pulumi:"displayName"` + // The Logs instance ID associated with the access token + InstanceId string `pulumi:"instanceId"` + // A lifetime period for an access token in days. If unset the token will not expire. + Lifetime *int `pulumi:"lifetime"` + // The access permissions granted to the access token. Possible values: `read`, `write`. + Permissions []string `pulumi:"permissions"` + // STACKIT project ID associated with the Logs access token + ProjectId string `pulumi:"projectId"` + // STACKIT region name the resource is located in. If not defined, the provider region is used. + Region *string `pulumi:"region"` +} + +// The set of arguments for constructing a LogsAccessToken resource. +type LogsAccessTokenArgs struct { + // The description of the access token + Description pulumi.StringPtrInput + // The displayed name of the access token + DisplayName pulumi.StringInput + // The Logs instance ID associated with the access token + InstanceId pulumi.StringInput + // A lifetime period for an access token in days. If unset the token will not expire. + Lifetime pulumi.IntPtrInput + // The access permissions granted to the access token. Possible values: `read`, `write`. + Permissions pulumi.StringArrayInput + // STACKIT project ID associated with the Logs access token + ProjectId pulumi.StringInput + // STACKIT region name the resource is located in. If not defined, the provider region is used. + Region pulumi.StringPtrInput +} + +func (LogsAccessTokenArgs) ElementType() reflect.Type { + return reflect.TypeOf((*logsAccessTokenArgs)(nil)).Elem() +} + +type LogsAccessTokenInput interface { + pulumi.Input + + ToLogsAccessTokenOutput() LogsAccessTokenOutput + ToLogsAccessTokenOutputWithContext(ctx context.Context) LogsAccessTokenOutput +} + +func (*LogsAccessToken) ElementType() reflect.Type { + return reflect.TypeOf((**LogsAccessToken)(nil)).Elem() +} + +func (i *LogsAccessToken) ToLogsAccessTokenOutput() LogsAccessTokenOutput { + return i.ToLogsAccessTokenOutputWithContext(context.Background()) +} + +func (i *LogsAccessToken) ToLogsAccessTokenOutputWithContext(ctx context.Context) LogsAccessTokenOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsAccessTokenOutput) +} + +// LogsAccessTokenArrayInput is an input type that accepts LogsAccessTokenArray and LogsAccessTokenArrayOutput values. +// You can construct a concrete instance of `LogsAccessTokenArrayInput` via: +// +// LogsAccessTokenArray{ LogsAccessTokenArgs{...} } +type LogsAccessTokenArrayInput interface { + pulumi.Input + + ToLogsAccessTokenArrayOutput() LogsAccessTokenArrayOutput + ToLogsAccessTokenArrayOutputWithContext(context.Context) LogsAccessTokenArrayOutput +} + +type LogsAccessTokenArray []LogsAccessTokenInput + +func (LogsAccessTokenArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogsAccessToken)(nil)).Elem() +} + +func (i LogsAccessTokenArray) ToLogsAccessTokenArrayOutput() LogsAccessTokenArrayOutput { + return i.ToLogsAccessTokenArrayOutputWithContext(context.Background()) +} + +func (i LogsAccessTokenArray) ToLogsAccessTokenArrayOutputWithContext(ctx context.Context) LogsAccessTokenArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsAccessTokenArrayOutput) +} + +// LogsAccessTokenMapInput is an input type that accepts LogsAccessTokenMap and LogsAccessTokenMapOutput values. +// You can construct a concrete instance of `LogsAccessTokenMapInput` via: +// +// LogsAccessTokenMap{ "key": LogsAccessTokenArgs{...} } +type LogsAccessTokenMapInput interface { + pulumi.Input + + ToLogsAccessTokenMapOutput() LogsAccessTokenMapOutput + ToLogsAccessTokenMapOutputWithContext(context.Context) LogsAccessTokenMapOutput +} + +type LogsAccessTokenMap map[string]LogsAccessTokenInput + +func (LogsAccessTokenMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogsAccessToken)(nil)).Elem() +} + +func (i LogsAccessTokenMap) ToLogsAccessTokenMapOutput() LogsAccessTokenMapOutput { + return i.ToLogsAccessTokenMapOutputWithContext(context.Background()) +} + +func (i LogsAccessTokenMap) ToLogsAccessTokenMapOutputWithContext(ctx context.Context) LogsAccessTokenMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsAccessTokenMapOutput) +} + +type LogsAccessTokenOutput struct{ *pulumi.OutputState } + +func (LogsAccessTokenOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LogsAccessToken)(nil)).Elem() +} + +func (o LogsAccessTokenOutput) ToLogsAccessTokenOutput() LogsAccessTokenOutput { + return o +} + +func (o LogsAccessTokenOutput) ToLogsAccessTokenOutputWithContext(ctx context.Context) LogsAccessTokenOutput { + return o +} + +// The generated access token +func (o LogsAccessTokenOutput) AccessToken() pulumi.StringOutput { + return o.ApplyT(func(v *LogsAccessToken) pulumi.StringOutput { return v.AccessToken }).(pulumi.StringOutput) +} + +// The access token ID +func (o LogsAccessTokenOutput) AccessTokenId() pulumi.StringOutput { + return o.ApplyT(func(v *LogsAccessToken) pulumi.StringOutput { return v.AccessTokenId }).(pulumi.StringOutput) +} + +// The user who created the access token +func (o LogsAccessTokenOutput) Creator() pulumi.StringOutput { + return o.ApplyT(func(v *LogsAccessToken) pulumi.StringOutput { return v.Creator }).(pulumi.StringOutput) +} + +// The description of the access token +func (o LogsAccessTokenOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogsAccessToken) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// The displayed name of the access token +func (o LogsAccessTokenOutput) DisplayName() pulumi.StringOutput { + return o.ApplyT(func(v *LogsAccessToken) pulumi.StringOutput { return v.DisplayName }).(pulumi.StringOutput) +} + +// Indicates if the access token can expire +func (o LogsAccessTokenOutput) Expires() pulumi.BoolOutput { + return o.ApplyT(func(v *LogsAccessToken) pulumi.BoolOutput { return v.Expires }).(pulumi.BoolOutput) +} + +// The Logs instance ID associated with the access token +func (o LogsAccessTokenOutput) InstanceId() pulumi.StringOutput { + return o.ApplyT(func(v *LogsAccessToken) pulumi.StringOutput { return v.InstanceId }).(pulumi.StringOutput) +} + +// A lifetime period for an access token in days. If unset the token will not expire. +func (o LogsAccessTokenOutput) Lifetime() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LogsAccessToken) pulumi.IntPtrOutput { return v.Lifetime }).(pulumi.IntPtrOutput) +} + +// The access permissions granted to the access token. Possible values: `read`, `write`. +func (o LogsAccessTokenOutput) Permissions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *LogsAccessToken) pulumi.StringArrayOutput { return v.Permissions }).(pulumi.StringArrayOutput) +} + +// STACKIT project ID associated with the Logs access token +func (o LogsAccessTokenOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v *LogsAccessToken) pulumi.StringOutput { return v.ProjectId }).(pulumi.StringOutput) +} + +// STACKIT region name the resource is located in. If not defined, the provider region is used. +func (o LogsAccessTokenOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v *LogsAccessToken) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) +} + +// The status of the access token. Possible values are: `active`, `expired`. +func (o LogsAccessTokenOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v *LogsAccessToken) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) +} + +// The date and time until an access token is valid to (inclusively) +func (o LogsAccessTokenOutput) ValidUntil() pulumi.StringOutput { + return o.ApplyT(func(v *LogsAccessToken) pulumi.StringOutput { return v.ValidUntil }).(pulumi.StringOutput) +} + +type LogsAccessTokenArrayOutput struct{ *pulumi.OutputState } + +func (LogsAccessTokenArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogsAccessToken)(nil)).Elem() +} + +func (o LogsAccessTokenArrayOutput) ToLogsAccessTokenArrayOutput() LogsAccessTokenArrayOutput { + return o +} + +func (o LogsAccessTokenArrayOutput) ToLogsAccessTokenArrayOutputWithContext(ctx context.Context) LogsAccessTokenArrayOutput { + return o +} + +func (o LogsAccessTokenArrayOutput) Index(i pulumi.IntInput) LogsAccessTokenOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LogsAccessToken { + return vs[0].([]*LogsAccessToken)[vs[1].(int)] + }).(LogsAccessTokenOutput) +} + +type LogsAccessTokenMapOutput struct{ *pulumi.OutputState } + +func (LogsAccessTokenMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogsAccessToken)(nil)).Elem() +} + +func (o LogsAccessTokenMapOutput) ToLogsAccessTokenMapOutput() LogsAccessTokenMapOutput { + return o +} + +func (o LogsAccessTokenMapOutput) ToLogsAccessTokenMapOutputWithContext(ctx context.Context) LogsAccessTokenMapOutput { + return o +} + +func (o LogsAccessTokenMapOutput) MapIndex(k pulumi.StringInput) LogsAccessTokenOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LogsAccessToken { + return vs[0].(map[string]*LogsAccessToken)[vs[1].(string)] + }).(LogsAccessTokenOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*LogsAccessTokenInput)(nil)).Elem(), &LogsAccessToken{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogsAccessTokenArrayInput)(nil)).Elem(), LogsAccessTokenArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogsAccessTokenMapInput)(nil)).Elem(), LogsAccessTokenMap{}) + pulumi.RegisterOutputType(LogsAccessTokenOutput{}) + pulumi.RegisterOutputType(LogsAccessTokenArrayOutput{}) + pulumi.RegisterOutputType(LogsAccessTokenMapOutput{}) +} diff --git a/sdk/go/stackit/logsInstance.go b/sdk/go/stackit/logsInstance.go index 3c4dbe0..75018f3 100644 --- a/sdk/go/stackit/logsInstance.go +++ b/sdk/go/stackit/logsInstance.go @@ -12,9 +12,7 @@ import ( "github.com/stackitcloud/pulumi-stackit/sdk/go/stackit/internal" ) -// Logs instance resource schema. -// -// > This resource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. +// Logs instance resource schema. Uses the `defaultRegion` specified in the provider configuration as a fallback in case no `region` is defined on resource level. // // ## Example Usage type LogsInstance struct { diff --git a/sdk/go/stackit/network.go b/sdk/go/stackit/network.go index ffe73b3..201b2a0 100644 --- a/sdk/go/stackit/network.go +++ b/sdk/go/stackit/network.go @@ -21,6 +21,8 @@ import ( type Network struct { pulumi.CustomResourceState + // If the network has DHCP enabled. Default value is `true`. + Dhcp pulumi.BoolOutput `pulumi:"dhcp"` // The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway. Ipv4Gateway pulumi.StringOutput `pulumi:"ipv4Gateway"` // The IPv4 nameservers of the network. @@ -104,6 +106,8 @@ func GetNetwork(ctx *pulumi.Context, // Input properties used for looking up and filtering Network resources. type networkState struct { + // If the network has DHCP enabled. Default value is `true`. + Dhcp *bool `pulumi:"dhcp"` // The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway. Ipv4Gateway *string `pulumi:"ipv4Gateway"` // The IPv4 nameservers of the network. @@ -155,6 +159,8 @@ type networkState struct { } type NetworkState struct { + // If the network has DHCP enabled. Default value is `true`. + Dhcp pulumi.BoolPtrInput // The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway. Ipv4Gateway pulumi.StringPtrInput // The IPv4 nameservers of the network. @@ -210,6 +216,8 @@ func (NetworkState) ElementType() reflect.Type { } type networkArgs struct { + // If the network has DHCP enabled. Default value is `true`. + Dhcp *bool `pulumi:"dhcp"` // The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway. Ipv4Gateway *string `pulumi:"ipv4Gateway"` // The IPv4 nameservers of the network. @@ -250,6 +258,8 @@ type networkArgs struct { // The set of arguments for constructing a Network resource. type NetworkArgs struct { + // If the network has DHCP enabled. Default value is `true`. + Dhcp pulumi.BoolPtrInput // The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway. Ipv4Gateway pulumi.StringPtrInput // The IPv4 nameservers of the network. @@ -375,6 +385,11 @@ func (o NetworkOutput) ToNetworkOutputWithContext(ctx context.Context) NetworkOu return o } +// If the network has DHCP enabled. Default value is `true`. +func (o NetworkOutput) Dhcp() pulumi.BoolOutput { + return o.ApplyT(func(v *Network) pulumi.BoolOutput { return v.Dhcp }).(pulumi.BoolOutput) +} + // The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway. func (o NetworkOutput) Ipv4Gateway() pulumi.StringOutput { return o.ApplyT(func(v *Network) pulumi.StringOutput { return v.Ipv4Gateway }).(pulumi.StringOutput) diff --git a/sdk/go/stackit/observabilityInstance.go b/sdk/go/stackit/observabilityInstance.go index a117c40..f14e7fe 100644 --- a/sdk/go/stackit/observabilityInstance.go +++ b/sdk/go/stackit/observabilityInstance.go @@ -28,6 +28,14 @@ type ObservabilityInstance struct { DashboardUrl pulumi.StringOutput `pulumi:"dashboardUrl"` // If true, a default Grafana server admin user is created. It's recommended to set this to false and use STACKIT SSO (Owner or Observability Grafana Server Admin role) instead. It is still possible to manually create a new Grafana admin user via the Grafana UI later. GrafanaAdminEnabled pulumi.BoolOutput `pulumi:"grafanaAdminEnabled"` + // Specifies an initial Grafana admin password. + // + // Deprecated: This attribute is deprecated and will be removed on July 5, 2026. Use `grafanaAdminEnabled` instead. + GrafanaInitialAdminPassword pulumi.StringOutput `pulumi:"grafanaInitialAdminPassword"` + // Specifies an initial Grafana admin username. + // + // Deprecated: This attribute is deprecated and will be removed on July 5, 2026. Use `grafanaAdminEnabled` instead. + GrafanaInitialAdminUser pulumi.StringOutput `pulumi:"grafanaInitialAdminUser"` // If true, anyone can access Grafana dashboards without logging in. GrafanaPublicReadAccess pulumi.BoolOutput `pulumi:"grafanaPublicReadAccess"` // Specifies Grafana URL. @@ -85,6 +93,10 @@ func NewObservabilityInstance(ctx *pulumi.Context, if args.ProjectId == nil { return nil, errors.New("invalid value for required argument 'ProjectId'") } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "grafanaInitialAdminPassword", + }) + opts = append(opts, secrets) opts = internal.PkgResourceDefaultOpts(opts) var resource ObservabilityInstance err := ctx.RegisterResource("stackit:index/observabilityInstance:ObservabilityInstance", name, args, &resource, opts...) @@ -118,6 +130,14 @@ type observabilityInstanceState struct { DashboardUrl *string `pulumi:"dashboardUrl"` // If true, a default Grafana server admin user is created. It's recommended to set this to false and use STACKIT SSO (Owner or Observability Grafana Server Admin role) instead. It is still possible to manually create a new Grafana admin user via the Grafana UI later. GrafanaAdminEnabled *bool `pulumi:"grafanaAdminEnabled"` + // Specifies an initial Grafana admin password. + // + // Deprecated: This attribute is deprecated and will be removed on July 5, 2026. Use `grafanaAdminEnabled` instead. + GrafanaInitialAdminPassword *string `pulumi:"grafanaInitialAdminPassword"` + // Specifies an initial Grafana admin username. + // + // Deprecated: This attribute is deprecated and will be removed on July 5, 2026. Use `grafanaAdminEnabled` instead. + GrafanaInitialAdminUser *string `pulumi:"grafanaInitialAdminUser"` // If true, anyone can access Grafana dashboards without logging in. GrafanaPublicReadAccess *bool `pulumi:"grafanaPublicReadAccess"` // Specifies Grafana URL. @@ -173,6 +193,14 @@ type ObservabilityInstanceState struct { DashboardUrl pulumi.StringPtrInput // If true, a default Grafana server admin user is created. It's recommended to set this to false and use STACKIT SSO (Owner or Observability Grafana Server Admin role) instead. It is still possible to manually create a new Grafana admin user via the Grafana UI later. GrafanaAdminEnabled pulumi.BoolPtrInput + // Specifies an initial Grafana admin password. + // + // Deprecated: This attribute is deprecated and will be removed on July 5, 2026. Use `grafanaAdminEnabled` instead. + GrafanaInitialAdminPassword pulumi.StringPtrInput + // Specifies an initial Grafana admin username. + // + // Deprecated: This attribute is deprecated and will be removed on July 5, 2026. Use `grafanaAdminEnabled` instead. + GrafanaInitialAdminUser pulumi.StringPtrInput // If true, anyone can access Grafana dashboards without logging in. GrafanaPublicReadAccess pulumi.BoolPtrInput // Specifies Grafana URL. @@ -388,6 +416,20 @@ func (o ObservabilityInstanceOutput) GrafanaAdminEnabled() pulumi.BoolOutput { return o.ApplyT(func(v *ObservabilityInstance) pulumi.BoolOutput { return v.GrafanaAdminEnabled }).(pulumi.BoolOutput) } +// Specifies an initial Grafana admin password. +// +// Deprecated: This attribute is deprecated and will be removed on July 5, 2026. Use `grafanaAdminEnabled` instead. +func (o ObservabilityInstanceOutput) GrafanaInitialAdminPassword() pulumi.StringOutput { + return o.ApplyT(func(v *ObservabilityInstance) pulumi.StringOutput { return v.GrafanaInitialAdminPassword }).(pulumi.StringOutput) +} + +// Specifies an initial Grafana admin username. +// +// Deprecated: This attribute is deprecated and will be removed on July 5, 2026. Use `grafanaAdminEnabled` instead. +func (o ObservabilityInstanceOutput) GrafanaInitialAdminUser() pulumi.StringOutput { + return o.ApplyT(func(v *ObservabilityInstance) pulumi.StringOutput { return v.GrafanaInitialAdminUser }).(pulumi.StringOutput) +} + // If true, anyone can access Grafana dashboards without logging in. func (o ObservabilityInstanceOutput) GrafanaPublicReadAccess() pulumi.BoolOutput { return o.ApplyT(func(v *ObservabilityInstance) pulumi.BoolOutput { return v.GrafanaPublicReadAccess }).(pulumi.BoolOutput) diff --git a/sdk/go/stackit/postgresflexInstance.go b/sdk/go/stackit/postgresflexInstance.go index 3a4c7f9..d296f70 100644 --- a/sdk/go/stackit/postgresflexInstance.go +++ b/sdk/go/stackit/postgresflexInstance.go @@ -19,7 +19,8 @@ type PostgresflexInstance struct { pulumi.CustomResourceState // The Access Control List (ACL) for the PostgresFlex instance. - Acls pulumi.StringArrayOutput `pulumi:"acls"` + Acls pulumi.StringArrayOutput `pulumi:"acls"` + // The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'. BackupSchedule pulumi.StringOutput `pulumi:"backupSchedule"` Flavor PostgresflexInstanceFlavorOutput `pulumi:"flavor"` // ID of the PostgresFlex instance. @@ -29,7 +30,8 @@ type PostgresflexInstance struct { // STACKIT project ID to which the instance is associated. ProjectId pulumi.StringOutput `pulumi:"projectId"` // The resource region. If not defined, the provider region is used. - Region pulumi.StringOutput `pulumi:"region"` + Region pulumi.StringOutput `pulumi:"region"` + // How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication. Replicas pulumi.IntOutput `pulumi:"replicas"` Storage PostgresflexInstanceStorageOutput `pulumi:"storage"` Version pulumi.StringOutput `pulumi:"version"` @@ -87,7 +89,8 @@ func GetPostgresflexInstance(ctx *pulumi.Context, // Input properties used for looking up and filtering PostgresflexInstance resources. type postgresflexInstanceState struct { // The Access Control List (ACL) for the PostgresFlex instance. - Acls []string `pulumi:"acls"` + Acls []string `pulumi:"acls"` + // The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'. BackupSchedule *string `pulumi:"backupSchedule"` Flavor *PostgresflexInstanceFlavor `pulumi:"flavor"` // ID of the PostgresFlex instance. @@ -97,7 +100,8 @@ type postgresflexInstanceState struct { // STACKIT project ID to which the instance is associated. ProjectId *string `pulumi:"projectId"` // The resource region. If not defined, the provider region is used. - Region *string `pulumi:"region"` + Region *string `pulumi:"region"` + // How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication. Replicas *int `pulumi:"replicas"` Storage *PostgresflexInstanceStorage `pulumi:"storage"` Version *string `pulumi:"version"` @@ -105,7 +109,8 @@ type postgresflexInstanceState struct { type PostgresflexInstanceState struct { // The Access Control List (ACL) for the PostgresFlex instance. - Acls pulumi.StringArrayInput + Acls pulumi.StringArrayInput + // The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'. BackupSchedule pulumi.StringPtrInput Flavor PostgresflexInstanceFlavorPtrInput // ID of the PostgresFlex instance. @@ -115,7 +120,8 @@ type PostgresflexInstanceState struct { // STACKIT project ID to which the instance is associated. ProjectId pulumi.StringPtrInput // The resource region. If not defined, the provider region is used. - Region pulumi.StringPtrInput + Region pulumi.StringPtrInput + // How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication. Replicas pulumi.IntPtrInput Storage PostgresflexInstanceStoragePtrInput Version pulumi.StringPtrInput @@ -127,7 +133,8 @@ func (PostgresflexInstanceState) ElementType() reflect.Type { type postgresflexInstanceArgs struct { // The Access Control List (ACL) for the PostgresFlex instance. - Acls []string `pulumi:"acls"` + Acls []string `pulumi:"acls"` + // The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'. BackupSchedule string `pulumi:"backupSchedule"` Flavor PostgresflexInstanceFlavor `pulumi:"flavor"` // Instance name. @@ -135,7 +142,8 @@ type postgresflexInstanceArgs struct { // STACKIT project ID to which the instance is associated. ProjectId string `pulumi:"projectId"` // The resource region. If not defined, the provider region is used. - Region *string `pulumi:"region"` + Region *string `pulumi:"region"` + // How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication. Replicas int `pulumi:"replicas"` Storage PostgresflexInstanceStorage `pulumi:"storage"` Version string `pulumi:"version"` @@ -144,7 +152,8 @@ type postgresflexInstanceArgs struct { // The set of arguments for constructing a PostgresflexInstance resource. type PostgresflexInstanceArgs struct { // The Access Control List (ACL) for the PostgresFlex instance. - Acls pulumi.StringArrayInput + Acls pulumi.StringArrayInput + // The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'. BackupSchedule pulumi.StringInput Flavor PostgresflexInstanceFlavorInput // Instance name. @@ -152,7 +161,8 @@ type PostgresflexInstanceArgs struct { // STACKIT project ID to which the instance is associated. ProjectId pulumi.StringInput // The resource region. If not defined, the provider region is used. - Region pulumi.StringPtrInput + Region pulumi.StringPtrInput + // How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication. Replicas pulumi.IntInput Storage PostgresflexInstanceStorageInput Version pulumi.StringInput @@ -250,6 +260,7 @@ func (o PostgresflexInstanceOutput) Acls() pulumi.StringArrayOutput { return o.ApplyT(func(v *PostgresflexInstance) pulumi.StringArrayOutput { return v.Acls }).(pulumi.StringArrayOutput) } +// The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'. func (o PostgresflexInstanceOutput) BackupSchedule() pulumi.StringOutput { return o.ApplyT(func(v *PostgresflexInstance) pulumi.StringOutput { return v.BackupSchedule }).(pulumi.StringOutput) } @@ -278,6 +289,7 @@ func (o PostgresflexInstanceOutput) Region() pulumi.StringOutput { return o.ApplyT(func(v *PostgresflexInstance) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) } +// How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication. func (o PostgresflexInstanceOutput) Replicas() pulumi.IntOutput { return o.ApplyT(func(v *PostgresflexInstance) pulumi.IntOutput { return v.Replicas }).(pulumi.IntOutput) } diff --git a/sdk/go/stackit/pulumiTypes.go b/sdk/go/stackit/pulumiTypes.go index 16309c9..5e710e5 100644 --- a/sdk/go/stackit/pulumiTypes.go +++ b/sdk/go/stackit/pulumiTypes.go @@ -383,13 +383,19 @@ func (o CdnDistributionConfigPtrOutput) Regions() pulumi.StringArrayOutput { } type CdnDistributionConfigBackend struct { - // A map of URLs to a list of countries where content is allowed. + // The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + BucketUrl *string `pulumi:"bucketUrl"` + // The credentials for the bucket. Required if type is 'bucket'. + Credentials *CdnDistributionConfigBackendCredentials `pulumi:"credentials"` + // The configured type http to configure countries where content is allowed. A map of URLs to a list of countries Geofencing map[string][]string `pulumi:"geofencing"` - // The configured origin request headers for the backend + // The configured type http origin request headers for the backend OriginRequestHeaders map[string]string `pulumi:"originRequestHeaders"` - // The configured backend type for the distribution - OriginUrl string `pulumi:"originUrl"` - // The configured backend type. Possible values are: `http`. + // The configured backend type http for the distribution + OriginUrl *string `pulumi:"originUrl"` + // The region where the bucket is hosted. Required if type is 'bucket'. + Region *string `pulumi:"region"` + // The configured backend type. Possible values are: `http`, `bucket`. Type string `pulumi:"type"` } @@ -405,13 +411,19 @@ type CdnDistributionConfigBackendInput interface { } type CdnDistributionConfigBackendArgs struct { - // A map of URLs to a list of countries where content is allowed. + // The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + BucketUrl pulumi.StringPtrInput `pulumi:"bucketUrl"` + // The credentials for the bucket. Required if type is 'bucket'. + Credentials CdnDistributionConfigBackendCredentialsPtrInput `pulumi:"credentials"` + // The configured type http to configure countries where content is allowed. A map of URLs to a list of countries Geofencing pulumi.StringArrayMapInput `pulumi:"geofencing"` - // The configured origin request headers for the backend + // The configured type http origin request headers for the backend OriginRequestHeaders pulumi.StringMapInput `pulumi:"originRequestHeaders"` - // The configured backend type for the distribution - OriginUrl pulumi.StringInput `pulumi:"originUrl"` - // The configured backend type. Possible values are: `http`. + // The configured backend type http for the distribution + OriginUrl pulumi.StringPtrInput `pulumi:"originUrl"` + // The region where the bucket is hosted. Required if type is 'bucket'. + Region pulumi.StringPtrInput `pulumi:"region"` + // The configured backend type. Possible values are: `http`, `bucket`. Type pulumi.StringInput `pulumi:"type"` } @@ -492,22 +504,37 @@ func (o CdnDistributionConfigBackendOutput) ToCdnDistributionConfigBackendPtrOut }).(CdnDistributionConfigBackendPtrOutput) } -// A map of URLs to a list of countries where content is allowed. +// The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. +func (o CdnDistributionConfigBackendOutput) BucketUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v CdnDistributionConfigBackend) *string { return v.BucketUrl }).(pulumi.StringPtrOutput) +} + +// The credentials for the bucket. Required if type is 'bucket'. +func (o CdnDistributionConfigBackendOutput) Credentials() CdnDistributionConfigBackendCredentialsPtrOutput { + return o.ApplyT(func(v CdnDistributionConfigBackend) *CdnDistributionConfigBackendCredentials { return v.Credentials }).(CdnDistributionConfigBackendCredentialsPtrOutput) +} + +// The configured type http to configure countries where content is allowed. A map of URLs to a list of countries func (o CdnDistributionConfigBackendOutput) Geofencing() pulumi.StringArrayMapOutput { return o.ApplyT(func(v CdnDistributionConfigBackend) map[string][]string { return v.Geofencing }).(pulumi.StringArrayMapOutput) } -// The configured origin request headers for the backend +// The configured type http origin request headers for the backend func (o CdnDistributionConfigBackendOutput) OriginRequestHeaders() pulumi.StringMapOutput { return o.ApplyT(func(v CdnDistributionConfigBackend) map[string]string { return v.OriginRequestHeaders }).(pulumi.StringMapOutput) } -// The configured backend type for the distribution -func (o CdnDistributionConfigBackendOutput) OriginUrl() pulumi.StringOutput { - return o.ApplyT(func(v CdnDistributionConfigBackend) string { return v.OriginUrl }).(pulumi.StringOutput) +// The configured backend type http for the distribution +func (o CdnDistributionConfigBackendOutput) OriginUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v CdnDistributionConfigBackend) *string { return v.OriginUrl }).(pulumi.StringPtrOutput) +} + +// The region where the bucket is hosted. Required if type is 'bucket'. +func (o CdnDistributionConfigBackendOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v CdnDistributionConfigBackend) *string { return v.Region }).(pulumi.StringPtrOutput) } -// The configured backend type. Possible values are: `http`. +// The configured backend type. Possible values are: `http`, `bucket`. func (o CdnDistributionConfigBackendOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v CdnDistributionConfigBackend) string { return v.Type }).(pulumi.StringOutput) } @@ -536,7 +563,27 @@ func (o CdnDistributionConfigBackendPtrOutput) Elem() CdnDistributionConfigBacke }).(CdnDistributionConfigBackendOutput) } -// A map of URLs to a list of countries where content is allowed. +// The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. +func (o CdnDistributionConfigBackendPtrOutput) BucketUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CdnDistributionConfigBackend) *string { + if v == nil { + return nil + } + return v.BucketUrl + }).(pulumi.StringPtrOutput) +} + +// The credentials for the bucket. Required if type is 'bucket'. +func (o CdnDistributionConfigBackendPtrOutput) Credentials() CdnDistributionConfigBackendCredentialsPtrOutput { + return o.ApplyT(func(v *CdnDistributionConfigBackend) *CdnDistributionConfigBackendCredentials { + if v == nil { + return nil + } + return v.Credentials + }).(CdnDistributionConfigBackendCredentialsPtrOutput) +} + +// The configured type http to configure countries where content is allowed. A map of URLs to a list of countries func (o CdnDistributionConfigBackendPtrOutput) Geofencing() pulumi.StringArrayMapOutput { return o.ApplyT(func(v *CdnDistributionConfigBackend) map[string][]string { if v == nil { @@ -546,7 +593,7 @@ func (o CdnDistributionConfigBackendPtrOutput) Geofencing() pulumi.StringArrayMa }).(pulumi.StringArrayMapOutput) } -// The configured origin request headers for the backend +// The configured type http origin request headers for the backend func (o CdnDistributionConfigBackendPtrOutput) OriginRequestHeaders() pulumi.StringMapOutput { return o.ApplyT(func(v *CdnDistributionConfigBackend) map[string]string { if v == nil { @@ -556,17 +603,27 @@ func (o CdnDistributionConfigBackendPtrOutput) OriginRequestHeaders() pulumi.Str }).(pulumi.StringMapOutput) } -// The configured backend type for the distribution +// The configured backend type http for the distribution func (o CdnDistributionConfigBackendPtrOutput) OriginUrl() pulumi.StringPtrOutput { return o.ApplyT(func(v *CdnDistributionConfigBackend) *string { if v == nil { return nil } - return &v.OriginUrl + return v.OriginUrl + }).(pulumi.StringPtrOutput) +} + +// The region where the bucket is hosted. Required if type is 'bucket'. +func (o CdnDistributionConfigBackendPtrOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CdnDistributionConfigBackend) *string { + if v == nil { + return nil + } + return v.Region }).(pulumi.StringPtrOutput) } -// The configured backend type. Possible values are: `http`. +// The configured backend type. Possible values are: `http`, `bucket`. func (o CdnDistributionConfigBackendPtrOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v *CdnDistributionConfigBackend) *string { if v == nil { @@ -576,6 +633,162 @@ func (o CdnDistributionConfigBackendPtrOutput) Type() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +type CdnDistributionConfigBackendCredentials struct { + // The access key for the bucket. Required if type is 'bucket'. + AccessKeyId string `pulumi:"accessKeyId"` + // The access key for the bucket. Required if type is 'bucket'. + SecretAccessKey string `pulumi:"secretAccessKey"` +} + +// CdnDistributionConfigBackendCredentialsInput is an input type that accepts CdnDistributionConfigBackendCredentialsArgs and CdnDistributionConfigBackendCredentialsOutput values. +// You can construct a concrete instance of `CdnDistributionConfigBackendCredentialsInput` via: +// +// CdnDistributionConfigBackendCredentialsArgs{...} +type CdnDistributionConfigBackendCredentialsInput interface { + pulumi.Input + + ToCdnDistributionConfigBackendCredentialsOutput() CdnDistributionConfigBackendCredentialsOutput + ToCdnDistributionConfigBackendCredentialsOutputWithContext(context.Context) CdnDistributionConfigBackendCredentialsOutput +} + +type CdnDistributionConfigBackendCredentialsArgs struct { + // The access key for the bucket. Required if type is 'bucket'. + AccessKeyId pulumi.StringInput `pulumi:"accessKeyId"` + // The access key for the bucket. Required if type is 'bucket'. + SecretAccessKey pulumi.StringInput `pulumi:"secretAccessKey"` +} + +func (CdnDistributionConfigBackendCredentialsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CdnDistributionConfigBackendCredentials)(nil)).Elem() +} + +func (i CdnDistributionConfigBackendCredentialsArgs) ToCdnDistributionConfigBackendCredentialsOutput() CdnDistributionConfigBackendCredentialsOutput { + return i.ToCdnDistributionConfigBackendCredentialsOutputWithContext(context.Background()) +} + +func (i CdnDistributionConfigBackendCredentialsArgs) ToCdnDistributionConfigBackendCredentialsOutputWithContext(ctx context.Context) CdnDistributionConfigBackendCredentialsOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigBackendCredentialsOutput) +} + +func (i CdnDistributionConfigBackendCredentialsArgs) ToCdnDistributionConfigBackendCredentialsPtrOutput() CdnDistributionConfigBackendCredentialsPtrOutput { + return i.ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(context.Background()) +} + +func (i CdnDistributionConfigBackendCredentialsArgs) ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(ctx context.Context) CdnDistributionConfigBackendCredentialsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigBackendCredentialsOutput).ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(ctx) +} + +// CdnDistributionConfigBackendCredentialsPtrInput is an input type that accepts CdnDistributionConfigBackendCredentialsArgs, CdnDistributionConfigBackendCredentialsPtr and CdnDistributionConfigBackendCredentialsPtrOutput values. +// You can construct a concrete instance of `CdnDistributionConfigBackendCredentialsPtrInput` via: +// +// CdnDistributionConfigBackendCredentialsArgs{...} +// +// or: +// +// nil +type CdnDistributionConfigBackendCredentialsPtrInput interface { + pulumi.Input + + ToCdnDistributionConfigBackendCredentialsPtrOutput() CdnDistributionConfigBackendCredentialsPtrOutput + ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(context.Context) CdnDistributionConfigBackendCredentialsPtrOutput +} + +type cdnDistributionConfigBackendCredentialsPtrType CdnDistributionConfigBackendCredentialsArgs + +func CdnDistributionConfigBackendCredentialsPtr(v *CdnDistributionConfigBackendCredentialsArgs) CdnDistributionConfigBackendCredentialsPtrInput { + return (*cdnDistributionConfigBackendCredentialsPtrType)(v) +} + +func (*cdnDistributionConfigBackendCredentialsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CdnDistributionConfigBackendCredentials)(nil)).Elem() +} + +func (i *cdnDistributionConfigBackendCredentialsPtrType) ToCdnDistributionConfigBackendCredentialsPtrOutput() CdnDistributionConfigBackendCredentialsPtrOutput { + return i.ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(context.Background()) +} + +func (i *cdnDistributionConfigBackendCredentialsPtrType) ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(ctx context.Context) CdnDistributionConfigBackendCredentialsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CdnDistributionConfigBackendCredentialsPtrOutput) +} + +type CdnDistributionConfigBackendCredentialsOutput struct{ *pulumi.OutputState } + +func (CdnDistributionConfigBackendCredentialsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CdnDistributionConfigBackendCredentials)(nil)).Elem() +} + +func (o CdnDistributionConfigBackendCredentialsOutput) ToCdnDistributionConfigBackendCredentialsOutput() CdnDistributionConfigBackendCredentialsOutput { + return o +} + +func (o CdnDistributionConfigBackendCredentialsOutput) ToCdnDistributionConfigBackendCredentialsOutputWithContext(ctx context.Context) CdnDistributionConfigBackendCredentialsOutput { + return o +} + +func (o CdnDistributionConfigBackendCredentialsOutput) ToCdnDistributionConfigBackendCredentialsPtrOutput() CdnDistributionConfigBackendCredentialsPtrOutput { + return o.ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(context.Background()) +} + +func (o CdnDistributionConfigBackendCredentialsOutput) ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(ctx context.Context) CdnDistributionConfigBackendCredentialsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CdnDistributionConfigBackendCredentials) *CdnDistributionConfigBackendCredentials { + return &v + }).(CdnDistributionConfigBackendCredentialsPtrOutput) +} + +// The access key for the bucket. Required if type is 'bucket'. +func (o CdnDistributionConfigBackendCredentialsOutput) AccessKeyId() pulumi.StringOutput { + return o.ApplyT(func(v CdnDistributionConfigBackendCredentials) string { return v.AccessKeyId }).(pulumi.StringOutput) +} + +// The access key for the bucket. Required if type is 'bucket'. +func (o CdnDistributionConfigBackendCredentialsOutput) SecretAccessKey() pulumi.StringOutput { + return o.ApplyT(func(v CdnDistributionConfigBackendCredentials) string { return v.SecretAccessKey }).(pulumi.StringOutput) +} + +type CdnDistributionConfigBackendCredentialsPtrOutput struct{ *pulumi.OutputState } + +func (CdnDistributionConfigBackendCredentialsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CdnDistributionConfigBackendCredentials)(nil)).Elem() +} + +func (o CdnDistributionConfigBackendCredentialsPtrOutput) ToCdnDistributionConfigBackendCredentialsPtrOutput() CdnDistributionConfigBackendCredentialsPtrOutput { + return o +} + +func (o CdnDistributionConfigBackendCredentialsPtrOutput) ToCdnDistributionConfigBackendCredentialsPtrOutputWithContext(ctx context.Context) CdnDistributionConfigBackendCredentialsPtrOutput { + return o +} + +func (o CdnDistributionConfigBackendCredentialsPtrOutput) Elem() CdnDistributionConfigBackendCredentialsOutput { + return o.ApplyT(func(v *CdnDistributionConfigBackendCredentials) CdnDistributionConfigBackendCredentials { + if v != nil { + return *v + } + var ret CdnDistributionConfigBackendCredentials + return ret + }).(CdnDistributionConfigBackendCredentialsOutput) +} + +// The access key for the bucket. Required if type is 'bucket'. +func (o CdnDistributionConfigBackendCredentialsPtrOutput) AccessKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CdnDistributionConfigBackendCredentials) *string { + if v == nil { + return nil + } + return &v.AccessKeyId + }).(pulumi.StringPtrOutput) +} + +// The access key for the bucket. Required if type is 'bucket'. +func (o CdnDistributionConfigBackendCredentialsPtrOutput) SecretAccessKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CdnDistributionConfigBackendCredentials) *string { + if v == nil { + return nil + } + return &v.SecretAccessKey + }).(pulumi.StringPtrOutput) +} + type CdnDistributionConfigOptimizer struct { Enabled *bool `pulumi:"enabled"` } @@ -5293,7 +5506,7 @@ func (o NetworkAreaRouteNextHopPtrOutput) Value() pulumi.StringPtrOutput { type ObservabilityAlertgroupRule struct { // The name of the alert rule. Is the identifier and must be unique in the group. - Alert string `pulumi:"alert"` + Alert *string `pulumi:"alert"` // A map of key:value. Annotations to add or overwrite for each alert Annotations map[string]string `pulumi:"annotations"` // The PromQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. @@ -5302,6 +5515,8 @@ type ObservabilityAlertgroupRule struct { For *string `pulumi:"for"` // A map of key:value. Labels to add or overwrite for each alert Labels map[string]string `pulumi:"labels"` + // The name of the metric. It's the identifier and must be unique in the group. + Record *string `pulumi:"record"` } // ObservabilityAlertgroupRuleInput is an input type that accepts ObservabilityAlertgroupRuleArgs and ObservabilityAlertgroupRuleOutput values. @@ -5317,7 +5532,7 @@ type ObservabilityAlertgroupRuleInput interface { type ObservabilityAlertgroupRuleArgs struct { // The name of the alert rule. Is the identifier and must be unique in the group. - Alert pulumi.StringInput `pulumi:"alert"` + Alert pulumi.StringPtrInput `pulumi:"alert"` // A map of key:value. Annotations to add or overwrite for each alert Annotations pulumi.StringMapInput `pulumi:"annotations"` // The PromQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. @@ -5326,6 +5541,8 @@ type ObservabilityAlertgroupRuleArgs struct { For pulumi.StringPtrInput `pulumi:"for"` // A map of key:value. Labels to add or overwrite for each alert Labels pulumi.StringMapInput `pulumi:"labels"` + // The name of the metric. It's the identifier and must be unique in the group. + Record pulumi.StringPtrInput `pulumi:"record"` } func (ObservabilityAlertgroupRuleArgs) ElementType() reflect.Type { @@ -5380,8 +5597,8 @@ func (o ObservabilityAlertgroupRuleOutput) ToObservabilityAlertgroupRuleOutputWi } // The name of the alert rule. Is the identifier and must be unique in the group. -func (o ObservabilityAlertgroupRuleOutput) Alert() pulumi.StringOutput { - return o.ApplyT(func(v ObservabilityAlertgroupRule) string { return v.Alert }).(pulumi.StringOutput) +func (o ObservabilityAlertgroupRuleOutput) Alert() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityAlertgroupRule) *string { return v.Alert }).(pulumi.StringPtrOutput) } // A map of key:value. Annotations to add or overwrite for each alert @@ -5404,6 +5621,11 @@ func (o ObservabilityAlertgroupRuleOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v ObservabilityAlertgroupRule) map[string]string { return v.Labels }).(pulumi.StringMapOutput) } +// The name of the metric. It's the identifier and must be unique in the group. +func (o ObservabilityAlertgroupRuleOutput) Record() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObservabilityAlertgroupRule) *string { return v.Record }).(pulumi.StringPtrOutput) +} + type ObservabilityAlertgroupRuleArrayOutput struct{ *pulumi.OutputState } func (ObservabilityAlertgroupRuleArrayOutput) ElementType() reflect.Type { @@ -6410,6 +6632,8 @@ func (o ObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput) Index } type ObservabilityInstanceAlertConfigRoute struct { + // Whether an alert should continue matching subsequent sibling nodes. + Continue *bool `pulumi:"continue"` // The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping. GroupBies []string `pulumi:"groupBies"` // How long to wait before sending a notification about new alerts that are added to a group of alerts for which an initial notification has already been sent. (Usually ~5m or more.) @@ -6436,6 +6660,8 @@ type ObservabilityInstanceAlertConfigRouteInput interface { } type ObservabilityInstanceAlertConfigRouteArgs struct { + // Whether an alert should continue matching subsequent sibling nodes. + Continue pulumi.BoolPtrInput `pulumi:"continue"` // The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping. GroupBies pulumi.StringArrayInput `pulumi:"groupBies"` // How long to wait before sending a notification about new alerts that are added to a group of alerts for which an initial notification has already been sent. (Usually ~5m or more.) @@ -6527,6 +6753,11 @@ func (o ObservabilityInstanceAlertConfigRouteOutput) ToObservabilityInstanceAler }).(ObservabilityInstanceAlertConfigRoutePtrOutput) } +// Whether an alert should continue matching subsequent sibling nodes. +func (o ObservabilityInstanceAlertConfigRouteOutput) Continue() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ObservabilityInstanceAlertConfigRoute) *bool { return v.Continue }).(pulumi.BoolPtrOutput) +} + // The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping. func (o ObservabilityInstanceAlertConfigRouteOutput) GroupBies() pulumi.StringArrayOutput { return o.ApplyT(func(v ObservabilityInstanceAlertConfigRoute) []string { return v.GroupBies }).(pulumi.StringArrayOutput) @@ -6583,6 +6814,16 @@ func (o ObservabilityInstanceAlertConfigRoutePtrOutput) Elem() ObservabilityInst }).(ObservabilityInstanceAlertConfigRouteOutput) } +// Whether an alert should continue matching subsequent sibling nodes. +func (o ObservabilityInstanceAlertConfigRoutePtrOutput) Continue() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ObservabilityInstanceAlertConfigRoute) *bool { + if v == nil { + return nil + } + return v.Continue + }).(pulumi.BoolPtrOutput) +} + // The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping. func (o ObservabilityInstanceAlertConfigRoutePtrOutput) GroupBies() pulumi.StringArrayOutput { return o.ApplyT(func(v *ObservabilityInstanceAlertConfigRoute) []string { @@ -13020,13 +13261,17 @@ func (o GetCdnDistributionConfigOutput) Regions() pulumi.StringArrayOutput { } type GetCdnDistributionConfigBackend struct { - // A map of URLs to a list of countries where content is allowed. + // The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + BucketUrl string `pulumi:"bucketUrl"` + // The configured type http to configure countries where content is allowed. A map of URLs to a list of countries Geofencing map[string][]string `pulumi:"geofencing"` - // The configured origin request headers for the backend + // The configured type http origin request headers for the backend OriginRequestHeaders map[string]string `pulumi:"originRequestHeaders"` - // The configured backend type for the distribution + // The configured backend type http for the distribution OriginUrl string `pulumi:"originUrl"` - // The configured backend type. Possible values are: `http`. + // The region where the bucket is hosted. Required if type is 'bucket'. + Region string `pulumi:"region"` + // The configured backend type. Possible values are: `http`, `bucket`. Type string `pulumi:"type"` } @@ -13042,13 +13287,17 @@ type GetCdnDistributionConfigBackendInput interface { } type GetCdnDistributionConfigBackendArgs struct { - // A map of URLs to a list of countries where content is allowed. + // The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + BucketUrl pulumi.StringInput `pulumi:"bucketUrl"` + // The configured type http to configure countries where content is allowed. A map of URLs to a list of countries Geofencing pulumi.StringArrayMapInput `pulumi:"geofencing"` - // The configured origin request headers for the backend + // The configured type http origin request headers for the backend OriginRequestHeaders pulumi.StringMapInput `pulumi:"originRequestHeaders"` - // The configured backend type for the distribution + // The configured backend type http for the distribution OriginUrl pulumi.StringInput `pulumi:"originUrl"` - // The configured backend type. Possible values are: `http`. + // The region where the bucket is hosted. Required if type is 'bucket'. + Region pulumi.StringInput `pulumi:"region"` + // The configured backend type. Possible values are: `http`, `bucket`. Type pulumi.StringInput `pulumi:"type"` } @@ -13078,22 +13327,32 @@ func (o GetCdnDistributionConfigBackendOutput) ToGetCdnDistributionConfigBackend return o } -// A map of URLs to a list of countries where content is allowed. +// The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. +func (o GetCdnDistributionConfigBackendOutput) BucketUrl() pulumi.StringOutput { + return o.ApplyT(func(v GetCdnDistributionConfigBackend) string { return v.BucketUrl }).(pulumi.StringOutput) +} + +// The configured type http to configure countries where content is allowed. A map of URLs to a list of countries func (o GetCdnDistributionConfigBackendOutput) Geofencing() pulumi.StringArrayMapOutput { return o.ApplyT(func(v GetCdnDistributionConfigBackend) map[string][]string { return v.Geofencing }).(pulumi.StringArrayMapOutput) } -// The configured origin request headers for the backend +// The configured type http origin request headers for the backend func (o GetCdnDistributionConfigBackendOutput) OriginRequestHeaders() pulumi.StringMapOutput { return o.ApplyT(func(v GetCdnDistributionConfigBackend) map[string]string { return v.OriginRequestHeaders }).(pulumi.StringMapOutput) } -// The configured backend type for the distribution +// The configured backend type http for the distribution func (o GetCdnDistributionConfigBackendOutput) OriginUrl() pulumi.StringOutput { return o.ApplyT(func(v GetCdnDistributionConfigBackend) string { return v.OriginUrl }).(pulumi.StringOutput) } -// The configured backend type. Possible values are: `http`. +// The region where the bucket is hosted. Required if type is 'bucket'. +func (o GetCdnDistributionConfigBackendOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v GetCdnDistributionConfigBackend) string { return v.Region }).(pulumi.StringOutput) +} + +// The configured backend type. Possible values are: `http`, `bucket`. func (o GetCdnDistributionConfigBackendOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v GetCdnDistributionConfigBackend) string { return v.Type }).(pulumi.StringOutput) } @@ -16362,6 +16621,8 @@ type GetObservabilityAlertgroupRule struct { For string `pulumi:"for"` // A map of key:value. Labels to add or overwrite for each alert Labels map[string]string `pulumi:"labels"` + // The name of the metric. It's the identifier and must be unique in the group. + Record string `pulumi:"record"` } // GetObservabilityAlertgroupRuleInput is an input type that accepts GetObservabilityAlertgroupRuleArgs and GetObservabilityAlertgroupRuleOutput values. @@ -16386,6 +16647,8 @@ type GetObservabilityAlertgroupRuleArgs struct { For pulumi.StringInput `pulumi:"for"` // A map of key:value. Labels to add or overwrite for each alert Labels pulumi.StringMapInput `pulumi:"labels"` + // The name of the metric. It's the identifier and must be unique in the group. + Record pulumi.StringInput `pulumi:"record"` } func (GetObservabilityAlertgroupRuleArgs) ElementType() reflect.Type { @@ -16464,6 +16727,11 @@ func (o GetObservabilityAlertgroupRuleOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v GetObservabilityAlertgroupRule) map[string]string { return v.Labels }).(pulumi.StringMapOutput) } +// The name of the metric. It's the identifier and must be unique in the group. +func (o GetObservabilityAlertgroupRuleOutput) Record() pulumi.StringOutput { + return o.ApplyT(func(v GetObservabilityAlertgroupRule) string { return v.Record }).(pulumi.StringOutput) +} + type GetObservabilityAlertgroupRuleArrayOutput struct{ *pulumi.OutputState } func (GetObservabilityAlertgroupRuleArrayOutput) ElementType() reflect.Type { @@ -17210,6 +17478,8 @@ func (o GetObservabilityInstanceAlertConfigReceiverWebhooksConfigArrayOutput) In } type GetObservabilityInstanceAlertConfigRoute struct { + // Whether an alert should continue matching subsequent sibling nodes. + Continue bool `pulumi:"continue"` // The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping. GroupBies []string `pulumi:"groupBies"` // How long to wait before sending a notification about new alerts that are added to a group of alerts for which an initial notification has already been sent. (Usually ~5m or more.) @@ -17236,6 +17506,8 @@ type GetObservabilityInstanceAlertConfigRouteInput interface { } type GetObservabilityInstanceAlertConfigRouteArgs struct { + // Whether an alert should continue matching subsequent sibling nodes. + Continue pulumi.BoolInput `pulumi:"continue"` // The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping. GroupBies pulumi.StringArrayInput `pulumi:"groupBies"` // How long to wait before sending a notification about new alerts that are added to a group of alerts for which an initial notification has already been sent. (Usually ~5m or more.) @@ -17276,6 +17548,11 @@ func (o GetObservabilityInstanceAlertConfigRouteOutput) ToGetObservabilityInstan return o } +// Whether an alert should continue matching subsequent sibling nodes. +func (o GetObservabilityInstanceAlertConfigRouteOutput) Continue() pulumi.BoolOutput { + return o.ApplyT(func(v GetObservabilityInstanceAlertConfigRoute) bool { return v.Continue }).(pulumi.BoolOutput) +} + // The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping. func (o GetObservabilityInstanceAlertConfigRouteOutput) GroupBies() pulumi.StringArrayOutput { return o.ApplyT(func(v GetObservabilityInstanceAlertConfigRoute) []string { return v.GroupBies }).(pulumi.StringArrayOutput) @@ -21629,6 +21906,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*CdnDistributionConfigPtrInput)(nil)).Elem(), CdnDistributionConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CdnDistributionConfigBackendInput)(nil)).Elem(), CdnDistributionConfigBackendArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CdnDistributionConfigBackendPtrInput)(nil)).Elem(), CdnDistributionConfigBackendArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CdnDistributionConfigBackendCredentialsInput)(nil)).Elem(), CdnDistributionConfigBackendCredentialsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CdnDistributionConfigBackendCredentialsPtrInput)(nil)).Elem(), CdnDistributionConfigBackendCredentialsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CdnDistributionConfigOptimizerInput)(nil)).Elem(), CdnDistributionConfigOptimizerArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CdnDistributionConfigOptimizerPtrInput)(nil)).Elem(), CdnDistributionConfigOptimizerArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CdnDistributionDomainInput)(nil)).Elem(), CdnDistributionDomainArgs{}) @@ -21892,6 +22171,8 @@ func init() { pulumi.RegisterOutputType(CdnDistributionConfigPtrOutput{}) pulumi.RegisterOutputType(CdnDistributionConfigBackendOutput{}) pulumi.RegisterOutputType(CdnDistributionConfigBackendPtrOutput{}) + pulumi.RegisterOutputType(CdnDistributionConfigBackendCredentialsOutput{}) + pulumi.RegisterOutputType(CdnDistributionConfigBackendCredentialsPtrOutput{}) pulumi.RegisterOutputType(CdnDistributionConfigOptimizerOutput{}) pulumi.RegisterOutputType(CdnDistributionConfigOptimizerPtrOutput{}) pulumi.RegisterOutputType(CdnDistributionDomainOutput{}) diff --git a/sdk/nodejs/getLogsAccessToken.ts b/sdk/nodejs/getLogsAccessToken.ts new file mode 100644 index 0000000..62818bf --- /dev/null +++ b/sdk/nodejs/getLogsAccessToken.ts @@ -0,0 +1,129 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * Logs access token data source schema. Uses the `defaultRegion` specified in the provider configuration as a fallback in case no `region` is defined on datasource level. + * + * ## Example Usage + */ +export function getLogsAccessToken(args: GetLogsAccessTokenArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("stackit:index/getLogsAccessToken:getLogsAccessToken", { + "accessTokenId": args.accessTokenId, + "instanceId": args.instanceId, + "projectId": args.projectId, + "region": args.region, + }, opts); +} + +/** + * A collection of arguments for invoking getLogsAccessToken. + */ +export interface GetLogsAccessTokenArgs { + /** + * The access token ID + */ + accessTokenId: string; + /** + * The Logs instance ID associated with the access token + */ + instanceId: string; + /** + * STACKIT project ID associated with the Logs access token + */ + projectId: string; + /** + * STACKIT region name the resource is located in. If not defined, the provider region is used. + */ + region?: string; +} + +/** + * A collection of values returned by getLogsAccessToken. + */ +export interface GetLogsAccessTokenResult { + /** + * The access token ID + */ + readonly accessTokenId: string; + /** + * The user who created the access token + */ + readonly creator: string; + /** + * The description of the access token + */ + readonly description: string; + /** + * The displayed name of the access token + */ + readonly displayName: string; + /** + * Indicates if the access token can expire + */ + readonly expires: boolean; + readonly id: string; + /** + * The Logs instance ID associated with the access token + */ + readonly instanceId: string; + /** + * The access permissions granted to the access token. Possible values: `read`, `write`. + */ + readonly permissions: string[]; + /** + * STACKIT project ID associated with the Logs access token + */ + readonly projectId: string; + /** + * STACKIT region name the resource is located in. If not defined, the provider region is used. + */ + readonly region?: string; + /** + * The status of the access token. Possible values are: `active`, `expired`. + */ + readonly status: string; + /** + * The date and time until an access token is valid to (inclusively) + */ + readonly validUntil: string; +} +/** + * Logs access token data source schema. Uses the `defaultRegion` specified in the provider configuration as a fallback in case no `region` is defined on datasource level. + * + * ## Example Usage + */ +export function getLogsAccessTokenOutput(args: GetLogsAccessTokenOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("stackit:index/getLogsAccessToken:getLogsAccessToken", { + "accessTokenId": args.accessTokenId, + "instanceId": args.instanceId, + "projectId": args.projectId, + "region": args.region, + }, opts); +} + +/** + * A collection of arguments for invoking getLogsAccessToken. + */ +export interface GetLogsAccessTokenOutputArgs { + /** + * The access token ID + */ + accessTokenId: pulumi.Input; + /** + * The Logs instance ID associated with the access token + */ + instanceId: pulumi.Input; + /** + * STACKIT project ID associated with the Logs access token + */ + projectId: pulumi.Input; + /** + * STACKIT region name the resource is located in. If not defined, the provider region is used. + */ + region?: pulumi.Input; +} diff --git a/sdk/nodejs/getLogsInstance.ts b/sdk/nodejs/getLogsInstance.ts index 4a13abb..c888d04 100644 --- a/sdk/nodejs/getLogsInstance.ts +++ b/sdk/nodejs/getLogsInstance.ts @@ -5,9 +5,7 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "./utilities"; /** - * Logs instance data source schema. - * - * > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. + * Logs instance data source schema. Uses the `defaultRegion` specified in the provider configuration as a fallback in case no `region` is defined on datasource level. * * ## Example Usage */ @@ -101,9 +99,7 @@ export interface GetLogsInstanceResult { readonly status: string; } /** - * Logs instance data source schema. - * - * > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. + * Logs instance data source schema. Uses the `defaultRegion` specified in the provider configuration as a fallback in case no `region` is defined on datasource level. * * ## Example Usage */ diff --git a/sdk/nodejs/getNetwork.ts b/sdk/nodejs/getNetwork.ts index a445def..2faf4da 100644 --- a/sdk/nodejs/getNetwork.ts +++ b/sdk/nodejs/getNetwork.ts @@ -31,7 +31,6 @@ export interface GetNetworkArgs { */ projectId: string; /** - * Can only be used when experimental "network" is set. This is likely going to undergo significant changes or be removed in the future. * The resource region. If not defined, the provider region is used. */ region?: string; @@ -41,6 +40,10 @@ export interface GetNetworkArgs { * A collection of values returned by getNetwork. */ export interface GetNetworkResult { + /** + * Shows if DHCP is enabled for the network. + */ + readonly dhcp: boolean; readonly id: string; /** * The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway. @@ -119,7 +122,6 @@ export interface GetNetworkResult { */ readonly publicIp: string; /** - * Can only be used when experimental "network" is set. This is likely going to undergo significant changes or be removed in the future. * The resource region. If not defined, the provider region is used. */ readonly region?: string; @@ -128,7 +130,6 @@ export interface GetNetworkResult { */ readonly routed: boolean; /** - * Can only be used when experimental "network" is set. This is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. * The ID of the routing table associated with the network. */ readonly routingTableId: string; @@ -160,7 +161,6 @@ export interface GetNetworkOutputArgs { */ projectId: pulumi.Input; /** - * Can only be used when experimental "network" is set. This is likely going to undergo significant changes or be removed in the future. * The resource region. If not defined, the provider region is used. */ region?: pulumi.Input; diff --git a/sdk/nodejs/getObservabilityInstance.ts b/sdk/nodejs/getObservabilityInstance.ts index 79c8820..a6569f0 100644 --- a/sdk/nodejs/getObservabilityInstance.ts +++ b/sdk/nodejs/getObservabilityInstance.ts @@ -57,6 +57,18 @@ export interface GetObservabilityInstanceResult { * If true, a default Grafana server admin user was created. */ readonly grafanaAdminEnabled: boolean; + /** + * Specifies an initial Grafana admin password. + * + * @deprecated This attribute is deprecated and will be removed on July 5, 2026. Use `grafanaAdminEnabled` instead. + */ + readonly grafanaInitialAdminPassword: string; + /** + * Specifies an initial Grafana admin username. + * + * @deprecated This attribute is deprecated and will be removed on July 5, 2026. Use `grafanaAdminEnabled` instead. + */ + readonly grafanaInitialAdminUser: string; /** * If true, anyone can access Grafana dashboards without logging in. */ diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index da7aac8..052eb5b 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -160,6 +160,11 @@ export const getLogmeInstance: typeof import("./getLogmeInstance").getLogmeInsta export const getLogmeInstanceOutput: typeof import("./getLogmeInstance").getLogmeInstanceOutput = null as any; utilities.lazyLoad(exports, ["getLogmeInstance","getLogmeInstanceOutput"], () => require("./getLogmeInstance")); +export { GetLogsAccessTokenArgs, GetLogsAccessTokenResult, GetLogsAccessTokenOutputArgs } from "./getLogsAccessToken"; +export const getLogsAccessToken: typeof import("./getLogsAccessToken").getLogsAccessToken = null as any; +export const getLogsAccessTokenOutput: typeof import("./getLogsAccessToken").getLogsAccessTokenOutput = null as any; +utilities.lazyLoad(exports, ["getLogsAccessToken","getLogsAccessTokenOutput"], () => require("./getLogsAccessToken")); + export { GetLogsInstanceArgs, GetLogsInstanceResult, GetLogsInstanceOutputArgs } from "./getLogsInstance"; export const getLogsInstance: typeof import("./getLogsInstance").getLogsInstance = null as any; export const getLogsInstanceOutput: typeof import("./getLogsInstance").getLogsInstanceOutput = null as any; @@ -500,6 +505,11 @@ export type LogmeInstance = import("./logmeInstance").LogmeInstance; export const LogmeInstance: typeof import("./logmeInstance").LogmeInstance = null as any; utilities.lazyLoad(exports, ["LogmeInstance"], () => require("./logmeInstance")); +export { LogsAccessTokenArgs, LogsAccessTokenState } from "./logsAccessToken"; +export type LogsAccessToken = import("./logsAccessToken").LogsAccessToken; +export const LogsAccessToken: typeof import("./logsAccessToken").LogsAccessToken = null as any; +utilities.lazyLoad(exports, ["LogsAccessToken"], () => require("./logsAccessToken")); + export { LogsInstanceArgs, LogsInstanceState } from "./logsInstance"; export type LogsInstance = import("./logsInstance").LogsInstance; export const LogsInstance: typeof import("./logsInstance").LogsInstance = null as any; @@ -846,6 +856,8 @@ const _module = { return new LogmeCredential(name, undefined, { urn }) case "stackit:index/logmeInstance:LogmeInstance": return new LogmeInstance(name, undefined, { urn }) + case "stackit:index/logsAccessToken:LogsAccessToken": + return new LogsAccessToken(name, undefined, { urn }) case "stackit:index/logsInstance:LogsInstance": return new LogsInstance(name, undefined, { urn }) case "stackit:index/mariadbCredential:MariadbCredential": @@ -987,6 +999,7 @@ pulumi.runtime.registerResourceModule("stackit", "index/loadbalancer", _module) pulumi.runtime.registerResourceModule("stackit", "index/loadbalancerObservabilityCredential", _module) pulumi.runtime.registerResourceModule("stackit", "index/logmeCredential", _module) pulumi.runtime.registerResourceModule("stackit", "index/logmeInstance", _module) +pulumi.runtime.registerResourceModule("stackit", "index/logsAccessToken", _module) pulumi.runtime.registerResourceModule("stackit", "index/logsInstance", _module) pulumi.runtime.registerResourceModule("stackit", "index/mariadbCredential", _module) pulumi.runtime.registerResourceModule("stackit", "index/mariadbInstance", _module) diff --git a/sdk/nodejs/logsAccessToken.ts b/sdk/nodejs/logsAccessToken.ts new file mode 100644 index 0000000..3407c50 --- /dev/null +++ b/sdk/nodejs/logsAccessToken.ts @@ -0,0 +1,244 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * Logs access token resource schema. Uses the `defaultRegion` specified in the provider configuration as a fallback in case no `region` is defined on resource level. + * + * ## Example Usage + */ +export class LogsAccessToken extends pulumi.CustomResource { + /** + * Get an existing LogsAccessToken resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: LogsAccessTokenState, opts?: pulumi.CustomResourceOptions): LogsAccessToken { + return new LogsAccessToken(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'stackit:index/logsAccessToken:LogsAccessToken'; + + /** + * Returns true if the given object is an instance of LogsAccessToken. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is LogsAccessToken { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === LogsAccessToken.__pulumiType; + } + + /** + * The generated access token + */ + declare public /*out*/ readonly accessToken: pulumi.Output; + /** + * The access token ID + */ + declare public /*out*/ readonly accessTokenId: pulumi.Output; + /** + * The user who created the access token + */ + declare public /*out*/ readonly creator: pulumi.Output; + /** + * The description of the access token + */ + declare public readonly description: pulumi.Output; + /** + * The displayed name of the access token + */ + declare public readonly displayName: pulumi.Output; + /** + * Indicates if the access token can expire + */ + declare public /*out*/ readonly expires: pulumi.Output; + /** + * The Logs instance ID associated with the access token + */ + declare public readonly instanceId: pulumi.Output; + /** + * A lifetime period for an access token in days. If unset the token will not expire. + */ + declare public readonly lifetime: pulumi.Output; + /** + * The access permissions granted to the access token. Possible values: `read`, `write`. + */ + declare public readonly permissions: pulumi.Output; + /** + * STACKIT project ID associated with the Logs access token + */ + declare public readonly projectId: pulumi.Output; + /** + * STACKIT region name the resource is located in. If not defined, the provider region is used. + */ + declare public readonly region: pulumi.Output; + /** + * The status of the access token. Possible values are: `active`, `expired`. + */ + declare public /*out*/ readonly status: pulumi.Output; + /** + * The date and time until an access token is valid to (inclusively) + */ + declare public /*out*/ readonly validUntil: pulumi.Output; + + /** + * Create a LogsAccessToken resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: LogsAccessTokenArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: LogsAccessTokenArgs | LogsAccessTokenState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as LogsAccessTokenState | undefined; + resourceInputs["accessToken"] = state?.accessToken; + resourceInputs["accessTokenId"] = state?.accessTokenId; + resourceInputs["creator"] = state?.creator; + resourceInputs["description"] = state?.description; + resourceInputs["displayName"] = state?.displayName; + resourceInputs["expires"] = state?.expires; + resourceInputs["instanceId"] = state?.instanceId; + resourceInputs["lifetime"] = state?.lifetime; + resourceInputs["permissions"] = state?.permissions; + resourceInputs["projectId"] = state?.projectId; + resourceInputs["region"] = state?.region; + resourceInputs["status"] = state?.status; + resourceInputs["validUntil"] = state?.validUntil; + } else { + const args = argsOrState as LogsAccessTokenArgs | undefined; + if (args?.displayName === undefined && !opts.urn) { + throw new Error("Missing required property 'displayName'"); + } + if (args?.instanceId === undefined && !opts.urn) { + throw new Error("Missing required property 'instanceId'"); + } + if (args?.permissions === undefined && !opts.urn) { + throw new Error("Missing required property 'permissions'"); + } + if (args?.projectId === undefined && !opts.urn) { + throw new Error("Missing required property 'projectId'"); + } + resourceInputs["description"] = args?.description; + resourceInputs["displayName"] = args?.displayName; + resourceInputs["instanceId"] = args?.instanceId; + resourceInputs["lifetime"] = args?.lifetime; + resourceInputs["permissions"] = args?.permissions; + resourceInputs["projectId"] = args?.projectId; + resourceInputs["region"] = args?.region; + resourceInputs["accessToken"] = undefined /*out*/; + resourceInputs["accessTokenId"] = undefined /*out*/; + resourceInputs["creator"] = undefined /*out*/; + resourceInputs["expires"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["validUntil"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["accessToken"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(LogsAccessToken.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering LogsAccessToken resources. + */ +export interface LogsAccessTokenState { + /** + * The generated access token + */ + accessToken?: pulumi.Input; + /** + * The access token ID + */ + accessTokenId?: pulumi.Input; + /** + * The user who created the access token + */ + creator?: pulumi.Input; + /** + * The description of the access token + */ + description?: pulumi.Input; + /** + * The displayed name of the access token + */ + displayName?: pulumi.Input; + /** + * Indicates if the access token can expire + */ + expires?: pulumi.Input; + /** + * The Logs instance ID associated with the access token + */ + instanceId?: pulumi.Input; + /** + * A lifetime period for an access token in days. If unset the token will not expire. + */ + lifetime?: pulumi.Input; + /** + * The access permissions granted to the access token. Possible values: `read`, `write`. + */ + permissions?: pulumi.Input[]>; + /** + * STACKIT project ID associated with the Logs access token + */ + projectId?: pulumi.Input; + /** + * STACKIT region name the resource is located in. If not defined, the provider region is used. + */ + region?: pulumi.Input; + /** + * The status of the access token. Possible values are: `active`, `expired`. + */ + status?: pulumi.Input; + /** + * The date and time until an access token is valid to (inclusively) + */ + validUntil?: pulumi.Input; +} + +/** + * The set of arguments for constructing a LogsAccessToken resource. + */ +export interface LogsAccessTokenArgs { + /** + * The description of the access token + */ + description?: pulumi.Input; + /** + * The displayed name of the access token + */ + displayName: pulumi.Input; + /** + * The Logs instance ID associated with the access token + */ + instanceId: pulumi.Input; + /** + * A lifetime period for an access token in days. If unset the token will not expire. + */ + lifetime?: pulumi.Input; + /** + * The access permissions granted to the access token. Possible values: `read`, `write`. + */ + permissions: pulumi.Input[]>; + /** + * STACKIT project ID associated with the Logs access token + */ + projectId: pulumi.Input; + /** + * STACKIT region name the resource is located in. If not defined, the provider region is used. + */ + region?: pulumi.Input; +} diff --git a/sdk/nodejs/logsInstance.ts b/sdk/nodejs/logsInstance.ts index 21d8220..33daaf5 100644 --- a/sdk/nodejs/logsInstance.ts +++ b/sdk/nodejs/logsInstance.ts @@ -5,9 +5,7 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "./utilities"; /** - * Logs instance resource schema. - * - * > This resource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. + * Logs instance resource schema. Uses the `defaultRegion` specified in the provider configuration as a fallback in case no `region` is defined on resource level. * * ## Example Usage */ diff --git a/sdk/nodejs/network.ts b/sdk/nodejs/network.ts index 4e6c30d..c0a2cb7 100644 --- a/sdk/nodejs/network.ts +++ b/sdk/nodejs/network.ts @@ -40,6 +40,10 @@ export class Network extends pulumi.CustomResource { return obj['__pulumiType'] === Network.__pulumiType; } + /** + * If the network has DHCP enabled. Default value is `true`. + */ + declare public readonly dhcp: pulumi.Output; /** * The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway. */ @@ -146,6 +150,7 @@ export class Network extends pulumi.CustomResource { opts = opts || {}; if (opts.id) { const state = argsOrState as NetworkState | undefined; + resourceInputs["dhcp"] = state?.dhcp; resourceInputs["ipv4Gateway"] = state?.ipv4Gateway; resourceInputs["ipv4Nameservers"] = state?.ipv4Nameservers; resourceInputs["ipv4Prefix"] = state?.ipv4Prefix; @@ -173,6 +178,7 @@ export class Network extends pulumi.CustomResource { if (args?.projectId === undefined && !opts.urn) { throw new Error("Missing required property 'projectId'"); } + resourceInputs["dhcp"] = args?.dhcp; resourceInputs["ipv4Gateway"] = args?.ipv4Gateway; resourceInputs["ipv4Nameservers"] = args?.ipv4Nameservers; resourceInputs["ipv4Prefix"] = args?.ipv4Prefix; @@ -205,6 +211,10 @@ export class Network extends pulumi.CustomResource { * Input properties used for looking up and filtering Network resources. */ export interface NetworkState { + /** + * If the network has DHCP enabled. Default value is `true`. + */ + dhcp?: pulumi.Input; /** * The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway. */ @@ -303,6 +313,10 @@ export interface NetworkState { * The set of arguments for constructing a Network resource. */ export interface NetworkArgs { + /** + * If the network has DHCP enabled. Default value is `true`. + */ + dhcp?: pulumi.Input; /** * The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway. */ diff --git a/sdk/nodejs/observabilityInstance.ts b/sdk/nodejs/observabilityInstance.ts index 01bddb6..a8bd602 100644 --- a/sdk/nodejs/observabilityInstance.ts +++ b/sdk/nodejs/observabilityInstance.ts @@ -59,6 +59,18 @@ export class ObservabilityInstance extends pulumi.CustomResource { * If true, a default Grafana server admin user is created. It's recommended to set this to false and use STACKIT SSO (Owner or Observability Grafana Server Admin role) instead. It is still possible to manually create a new Grafana admin user via the Grafana UI later. */ declare public readonly grafanaAdminEnabled: pulumi.Output; + /** + * Specifies an initial Grafana admin password. + * + * @deprecated This attribute is deprecated and will be removed on July 5, 2026. Use `grafanaAdminEnabled` instead. + */ + declare public /*out*/ readonly grafanaInitialAdminPassword: pulumi.Output; + /** + * Specifies an initial Grafana admin username. + * + * @deprecated This attribute is deprecated and will be removed on July 5, 2026. Use `grafanaAdminEnabled` instead. + */ + declare public /*out*/ readonly grafanaInitialAdminUser: pulumi.Output; /** * If true, anyone can access Grafana dashboards without logging in. */ @@ -158,6 +170,8 @@ export class ObservabilityInstance extends pulumi.CustomResource { resourceInputs["alertingUrl"] = state?.alertingUrl; resourceInputs["dashboardUrl"] = state?.dashboardUrl; resourceInputs["grafanaAdminEnabled"] = state?.grafanaAdminEnabled; + resourceInputs["grafanaInitialAdminPassword"] = state?.grafanaInitialAdminPassword; + resourceInputs["grafanaInitialAdminUser"] = state?.grafanaInitialAdminUser; resourceInputs["grafanaPublicReadAccess"] = state?.grafanaPublicReadAccess; resourceInputs["grafanaUrl"] = state?.grafanaUrl; resourceInputs["instanceId"] = state?.instanceId; @@ -203,6 +217,8 @@ export class ObservabilityInstance extends pulumi.CustomResource { resourceInputs["tracesRetentionDays"] = args?.tracesRetentionDays; resourceInputs["alertingUrl"] = undefined /*out*/; resourceInputs["dashboardUrl"] = undefined /*out*/; + resourceInputs["grafanaInitialAdminPassword"] = undefined /*out*/; + resourceInputs["grafanaInitialAdminUser"] = undefined /*out*/; resourceInputs["grafanaPublicReadAccess"] = undefined /*out*/; resourceInputs["grafanaUrl"] = undefined /*out*/; resourceInputs["instanceId"] = undefined /*out*/; @@ -219,6 +235,8 @@ export class ObservabilityInstance extends pulumi.CustomResource { resourceInputs["zipkinSpansUrl"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["grafanaInitialAdminPassword"] }; + opts = pulumi.mergeOptions(opts, secretOpts); super(ObservabilityInstance.__pulumiType, name, resourceInputs, opts); } } @@ -247,6 +265,18 @@ export interface ObservabilityInstanceState { * If true, a default Grafana server admin user is created. It's recommended to set this to false and use STACKIT SSO (Owner or Observability Grafana Server Admin role) instead. It is still possible to manually create a new Grafana admin user via the Grafana UI later. */ grafanaAdminEnabled?: pulumi.Input; + /** + * Specifies an initial Grafana admin password. + * + * @deprecated This attribute is deprecated and will be removed on July 5, 2026. Use `grafanaAdminEnabled` instead. + */ + grafanaInitialAdminPassword?: pulumi.Input; + /** + * Specifies an initial Grafana admin username. + * + * @deprecated This attribute is deprecated and will be removed on July 5, 2026. Use `grafanaAdminEnabled` instead. + */ + grafanaInitialAdminUser?: pulumi.Input; /** * If true, anyone can access Grafana dashboards without logging in. */ diff --git a/sdk/nodejs/postgresflexInstance.ts b/sdk/nodejs/postgresflexInstance.ts index dac4c46..bd990fe 100644 --- a/sdk/nodejs/postgresflexInstance.ts +++ b/sdk/nodejs/postgresflexInstance.ts @@ -43,6 +43,9 @@ export class PostgresflexInstance extends pulumi.CustomResource { * The Access Control List (ACL) for the PostgresFlex instance. */ declare public readonly acls: pulumi.Output; + /** + * The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'. + */ declare public readonly backupSchedule: pulumi.Output; declare public readonly flavor: pulumi.Output; /** @@ -61,6 +64,9 @@ export class PostgresflexInstance extends pulumi.CustomResource { * The resource region. If not defined, the provider region is used. */ declare public readonly region: pulumi.Output; + /** + * How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication. + */ declare public readonly replicas: pulumi.Output; declare public readonly storage: pulumi.Output; declare public readonly version: pulumi.Output; @@ -135,6 +141,9 @@ export interface PostgresflexInstanceState { * The Access Control List (ACL) for the PostgresFlex instance. */ acls?: pulumi.Input[]>; + /** + * The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'. + */ backupSchedule?: pulumi.Input; flavor?: pulumi.Input; /** @@ -153,6 +162,9 @@ export interface PostgresflexInstanceState { * The resource region. If not defined, the provider region is used. */ region?: pulumi.Input; + /** + * How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication. + */ replicas?: pulumi.Input; storage?: pulumi.Input; version?: pulumi.Input; @@ -166,6 +178,9 @@ export interface PostgresflexInstanceArgs { * The Access Control List (ACL) for the PostgresFlex instance. */ acls: pulumi.Input[]>; + /** + * The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'. + */ backupSchedule: pulumi.Input; flavor: pulumi.Input; /** @@ -180,6 +195,9 @@ export interface PostgresflexInstanceArgs { * The resource region. If not defined, the provider region is used. */ region?: pulumi.Input; + /** + * How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication. + */ replicas: pulumi.Input; storage: pulumi.Input; version: pulumi.Input; diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 9e0c195..6017b61 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -46,6 +46,7 @@ "getLoadbalancer.ts", "getLogmeCredential.ts", "getLogmeInstance.ts", + "getLogsAccessToken.ts", "getLogsInstance.ts", "getMachineType.ts", "getMariadbCredential.ts", @@ -115,6 +116,7 @@ "loadbalancerObservabilityCredential.ts", "logmeCredential.ts", "logmeInstance.ts", + "logsAccessToken.ts", "logsInstance.ts", "mariadbCredential.ts", "mariadbInstance.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 9ae75db..335524d 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -41,23 +41,46 @@ export interface CdnDistributionConfig { export interface CdnDistributionConfigBackend { /** - * A map of URLs to a list of countries where content is allowed. + * The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + */ + bucketUrl?: pulumi.Input; + /** + * The credentials for the bucket. Required if type is 'bucket'. + */ + credentials?: pulumi.Input; + /** + * The configured type http to configure countries where content is allowed. A map of URLs to a list of countries */ geofencing?: pulumi.Input<{[key: string]: pulumi.Input[]>}>; /** - * The configured origin request headers for the backend + * The configured type http origin request headers for the backend */ originRequestHeaders?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * The configured backend type for the distribution + * The configured backend type http for the distribution + */ + originUrl?: pulumi.Input; + /** + * The region where the bucket is hosted. Required if type is 'bucket'. */ - originUrl: pulumi.Input; + region?: pulumi.Input; /** - * The configured backend type. Possible values are: `http`. + * The configured backend type. Possible values are: `http`, `bucket`. */ type: pulumi.Input; } +export interface CdnDistributionConfigBackendCredentials { + /** + * The access key for the bucket. Required if type is 'bucket'. + */ + accessKeyId: pulumi.Input; + /** + * The access key for the bucket. Required if type is 'bucket'. + */ + secretAccessKey: pulumi.Input; +} + export interface CdnDistributionConfigOptimizer { enabled?: pulumi.Input; } @@ -585,7 +608,7 @@ export interface ObservabilityAlertgroupRule { /** * The name of the alert rule. Is the identifier and must be unique in the group. */ - alert: pulumi.Input; + alert?: pulumi.Input; /** * A map of key:value. Annotations to add or overwrite for each alert */ @@ -602,6 +625,10 @@ export interface ObservabilityAlertgroupRule { * A map of key:value. Labels to add or overwrite for each alert */ labels?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The name of the metric. It's the identifier and must be unique in the group. + */ + record?: pulumi.Input; } export interface ObservabilityInstanceAlertConfig { @@ -747,6 +774,10 @@ export interface ObservabilityInstanceAlertConfigReceiverWebhooksConfig { } export interface ObservabilityInstanceAlertConfigRoute { + /** + * Whether an alert should continue matching subsequent sibling nodes. + */ + continue?: pulumi.Input; /** * The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping. */ diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index ca43253..693e0a3 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -28,7 +28,7 @@ export interface CdnDistributionConfig { /** * The configured countries where distribution of content is blocked */ - blockedCountries?: string[]; + blockedCountries: string[]; /** * Configuration for the Image Optimizer. This is a paid feature that automatically optimizes images to reduce their file size for faster delivery, leading to improved website performance and a better user experience. */ @@ -41,23 +41,46 @@ export interface CdnDistributionConfig { export interface CdnDistributionConfigBackend { /** - * A map of URLs to a list of countries where content is allowed. + * The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + */ + bucketUrl?: string; + /** + * The credentials for the bucket. Required if type is 'bucket'. + */ + credentials?: outputs.CdnDistributionConfigBackendCredentials; + /** + * The configured type http to configure countries where content is allowed. A map of URLs to a list of countries */ geofencing?: {[key: string]: string[]}; /** - * The configured origin request headers for the backend + * The configured type http origin request headers for the backend */ originRequestHeaders?: {[key: string]: string}; /** - * The configured backend type for the distribution + * The configured backend type http for the distribution */ - originUrl: string; + originUrl?: string; + /** + * The region where the bucket is hosted. Required if type is 'bucket'. + */ + region?: string; /** - * The configured backend type. Possible values are: `http`. + * The configured backend type. Possible values are: `http`, `bucket`. */ type: string; } +export interface CdnDistributionConfigBackendCredentials { + /** + * The access key for the bucket. Required if type is 'bucket'. + */ + accessKeyId: string; + /** + * The access key for the bucket. Required if type is 'bucket'. + */ + secretAccessKey: string; +} + export interface CdnDistributionConfigOptimizer { enabled: boolean; } @@ -109,19 +132,27 @@ export interface GetCdnDistributionConfig { export interface GetCdnDistributionConfigBackend { /** - * A map of URLs to a list of countries where content is allowed. + * The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + */ + bucketUrl: string; + /** + * The configured type http to configure countries where content is allowed. A map of URLs to a list of countries */ geofencing: {[key: string]: string[]}; /** - * The configured origin request headers for the backend + * The configured type http origin request headers for the backend */ originRequestHeaders: {[key: string]: string}; /** - * The configured backend type for the distribution + * The configured backend type http for the distribution */ originUrl: string; /** - * The configured backend type. Possible values are: `http`. + * The region where the bucket is hosted. Required if type is 'bucket'. + */ + region: string; + /** + * The configured backend type. Possible values are: `http`, `bucket`. */ type: string; } @@ -742,6 +773,10 @@ export interface GetObservabilityAlertgroupRule { * A map of key:value. Labels to add or overwrite for each alert */ labels: {[key: string]: string}; + /** + * The name of the metric. It's the identifier and must be unique in the group. + */ + record: string; } export interface GetObservabilityInstanceAlertConfig { @@ -887,6 +922,10 @@ export interface GetObservabilityInstanceAlertConfigReceiverWebhooksConfig { } export interface GetObservabilityInstanceAlertConfigRoute { + /** + * Whether an alert should continue matching subsequent sibling nodes. + */ + continue: boolean; /** * The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping. */ @@ -2205,7 +2244,7 @@ export interface ObservabilityAlertgroupRule { /** * The name of the alert rule. Is the identifier and must be unique in the group. */ - alert: string; + alert?: string; /** * A map of key:value. Annotations to add or overwrite for each alert */ @@ -2222,6 +2261,10 @@ export interface ObservabilityAlertgroupRule { * A map of key:value. Labels to add or overwrite for each alert */ labels?: {[key: string]: string}; + /** + * The name of the metric. It's the identifier and must be unique in the group. + */ + record?: string; } export interface ObservabilityInstanceAlertConfig { @@ -2367,6 +2410,10 @@ export interface ObservabilityInstanceAlertConfigReceiverWebhooksConfig { } export interface ObservabilityInstanceAlertConfigRoute { + /** + * Whether an alert should continue matching subsequent sibling nodes. + */ + continue: boolean; /** * The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping. */ diff --git a/sdk/python/pulumi_stackit/__init__.py b/sdk/python/pulumi_stackit/__init__.py index 4a550cc..2ee2f63 100644 --- a/sdk/python/pulumi_stackit/__init__.py +++ b/sdk/python/pulumi_stackit/__init__.py @@ -37,6 +37,7 @@ from .get_loadbalancer import * from .get_logme_credential import * from .get_logme_instance import * +from .get_logs_access_token import * from .get_logs_instance import * from .get_machine_type import * from .get_mariadb_credential import * @@ -105,6 +106,7 @@ from .loadbalancer_observability_credential import * from .logme_credential import * from .logme_instance import * +from .logs_access_token import * from .logs_instance import * from .mariadb_credential import * from .mariadb_instance import * @@ -352,6 +354,14 @@ "stackit:index/logmeInstance:LogmeInstance": "LogmeInstance" } }, + { + "pkg": "stackit", + "mod": "index/logsAccessToken", + "fqn": "pulumi_stackit", + "classes": { + "stackit:index/logsAccessToken:LogsAccessToken": "LogsAccessToken" + } + }, { "pkg": "stackit", "mod": "index/logsInstance", diff --git a/sdk/python/pulumi_stackit/_inputs.py b/sdk/python/pulumi_stackit/_inputs.py index 8aa98b3..5fd76dd 100644 --- a/sdk/python/pulumi_stackit/_inputs.py +++ b/sdk/python/pulumi_stackit/_inputs.py @@ -21,6 +21,8 @@ 'CdnDistributionConfigArgsDict', 'CdnDistributionConfigBackendArgs', 'CdnDistributionConfigBackendArgsDict', + 'CdnDistributionConfigBackendCredentialsArgs', + 'CdnDistributionConfigBackendCredentialsArgsDict', 'CdnDistributionConfigOptimizerArgs', 'CdnDistributionConfigOptimizerArgsDict', 'CdnDistributionDomainArgs', @@ -329,21 +331,33 @@ def optimizer(self, value: Optional[pulumi.Input['CdnDistributionConfigOptimizer if not MYPY: class CdnDistributionConfigBackendArgsDict(TypedDict): - origin_url: pulumi.Input[_builtins.str] + type: pulumi.Input[_builtins.str] """ - The configured backend type for the distribution + The configured backend type. Possible values are: `http`, `bucket`. """ - type: pulumi.Input[_builtins.str] + bucket_url: NotRequired[pulumi.Input[_builtins.str]] + """ + The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. """ - The configured backend type. Possible values are: `http`. + credentials: NotRequired[pulumi.Input['CdnDistributionConfigBackendCredentialsArgsDict']] + """ + The credentials for the bucket. Required if type is 'bucket'. """ geofencing: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]]] """ - A map of URLs to a list of countries where content is allowed. + The configured type http to configure countries where content is allowed. A map of URLs to a list of countries """ origin_request_headers: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] """ - The configured origin request headers for the backend + The configured type http origin request headers for the backend + """ + origin_url: NotRequired[pulumi.Input[_builtins.str]] + """ + The configured backend type http for the distribution + """ + region: NotRequired[pulumi.Input[_builtins.str]] + """ + The region where the bucket is hosted. Required if type is 'bucket'. """ elif False: CdnDistributionConfigBackendArgsDict: TypeAlias = Mapping[str, Any] @@ -351,40 +365,41 @@ class CdnDistributionConfigBackendArgsDict(TypedDict): @pulumi.input_type class CdnDistributionConfigBackendArgs: def __init__(__self__, *, - origin_url: pulumi.Input[_builtins.str], type: pulumi.Input[_builtins.str], + bucket_url: Optional[pulumi.Input[_builtins.str]] = None, + credentials: Optional[pulumi.Input['CdnDistributionConfigBackendCredentialsArgs']] = None, geofencing: Optional[pulumi.Input[Mapping[str, pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]]] = None, - origin_request_headers: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None): - """ - :param pulumi.Input[_builtins.str] origin_url: The configured backend type for the distribution - :param pulumi.Input[_builtins.str] type: The configured backend type. Possible values are: `http`. - :param pulumi.Input[Mapping[str, pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]] geofencing: A map of URLs to a list of countries where content is allowed. - :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] origin_request_headers: The configured origin request headers for the backend + origin_request_headers: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None, + origin_url: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None): + """ + :param pulumi.Input[_builtins.str] type: The configured backend type. Possible values are: `http`, `bucket`. + :param pulumi.Input[_builtins.str] bucket_url: The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + :param pulumi.Input['CdnDistributionConfigBackendCredentialsArgs'] credentials: The credentials for the bucket. Required if type is 'bucket'. + :param pulumi.Input[Mapping[str, pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]] geofencing: The configured type http to configure countries where content is allowed. A map of URLs to a list of countries + :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] origin_request_headers: The configured type http origin request headers for the backend + :param pulumi.Input[_builtins.str] origin_url: The configured backend type http for the distribution + :param pulumi.Input[_builtins.str] region: The region where the bucket is hosted. Required if type is 'bucket'. """ - pulumi.set(__self__, "origin_url", origin_url) pulumi.set(__self__, "type", type) + if bucket_url is not None: + pulumi.set(__self__, "bucket_url", bucket_url) + if credentials is not None: + pulumi.set(__self__, "credentials", credentials) if geofencing is not None: pulumi.set(__self__, "geofencing", geofencing) if origin_request_headers is not None: pulumi.set(__self__, "origin_request_headers", origin_request_headers) - - @_builtins.property - @pulumi.getter(name="originUrl") - def origin_url(self) -> pulumi.Input[_builtins.str]: - """ - The configured backend type for the distribution - """ - return pulumi.get(self, "origin_url") - - @origin_url.setter - def origin_url(self, value: pulumi.Input[_builtins.str]): - pulumi.set(self, "origin_url", value) + if origin_url is not None: + pulumi.set(__self__, "origin_url", origin_url) + if region is not None: + pulumi.set(__self__, "region", region) @_builtins.property @pulumi.getter def type(self) -> pulumi.Input[_builtins.str]: """ - The configured backend type. Possible values are: `http`. + The configured backend type. Possible values are: `http`, `bucket`. """ return pulumi.get(self, "type") @@ -392,11 +407,35 @@ def type(self) -> pulumi.Input[_builtins.str]: def type(self, value: pulumi.Input[_builtins.str]): pulumi.set(self, "type", value) + @_builtins.property + @pulumi.getter(name="bucketUrl") + def bucket_url(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + """ + return pulumi.get(self, "bucket_url") + + @bucket_url.setter + def bucket_url(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "bucket_url", value) + + @_builtins.property + @pulumi.getter + def credentials(self) -> Optional[pulumi.Input['CdnDistributionConfigBackendCredentialsArgs']]: + """ + The credentials for the bucket. Required if type is 'bucket'. + """ + return pulumi.get(self, "credentials") + + @credentials.setter + def credentials(self, value: Optional[pulumi.Input['CdnDistributionConfigBackendCredentialsArgs']]): + pulumi.set(self, "credentials", value) + @_builtins.property @pulumi.getter def geofencing(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]]]: """ - A map of URLs to a list of countries where content is allowed. + The configured type http to configure countries where content is allowed. A map of URLs to a list of countries """ return pulumi.get(self, "geofencing") @@ -408,7 +447,7 @@ def geofencing(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[Sequ @pulumi.getter(name="originRequestHeaders") def origin_request_headers(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]: """ - The configured origin request headers for the backend + The configured type http origin request headers for the backend """ return pulumi.get(self, "origin_request_headers") @@ -416,6 +455,80 @@ def origin_request_headers(self) -> Optional[pulumi.Input[Mapping[str, pulumi.In def origin_request_headers(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]): pulumi.set(self, "origin_request_headers", value) + @_builtins.property + @pulumi.getter(name="originUrl") + def origin_url(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The configured backend type http for the distribution + """ + return pulumi.get(self, "origin_url") + + @origin_url.setter + def origin_url(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "origin_url", value) + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The region where the bucket is hosted. Required if type is 'bucket'. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "region", value) + + +if not MYPY: + class CdnDistributionConfigBackendCredentialsArgsDict(TypedDict): + access_key_id: pulumi.Input[_builtins.str] + """ + The access key for the bucket. Required if type is 'bucket'. + """ + secret_access_key: pulumi.Input[_builtins.str] + """ + The access key for the bucket. Required if type is 'bucket'. + """ +elif False: + CdnDistributionConfigBackendCredentialsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CdnDistributionConfigBackendCredentialsArgs: + def __init__(__self__, *, + access_key_id: pulumi.Input[_builtins.str], + secret_access_key: pulumi.Input[_builtins.str]): + """ + :param pulumi.Input[_builtins.str] access_key_id: The access key for the bucket. Required if type is 'bucket'. + :param pulumi.Input[_builtins.str] secret_access_key: The access key for the bucket. Required if type is 'bucket'. + """ + pulumi.set(__self__, "access_key_id", access_key_id) + pulumi.set(__self__, "secret_access_key", secret_access_key) + + @_builtins.property + @pulumi.getter(name="accessKeyId") + def access_key_id(self) -> pulumi.Input[_builtins.str]: + """ + The access key for the bucket. Required if type is 'bucket'. + """ + return pulumi.get(self, "access_key_id") + + @access_key_id.setter + def access_key_id(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "access_key_id", value) + + @_builtins.property + @pulumi.getter(name="secretAccessKey") + def secret_access_key(self) -> pulumi.Input[_builtins.str]: + """ + The access key for the bucket. Required if type is 'bucket'. + """ + return pulumi.get(self, "secret_access_key") + + @secret_access_key.setter + def secret_access_key(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "secret_access_key", value) + if not MYPY: class CdnDistributionConfigOptimizerArgsDict(TypedDict): @@ -2775,14 +2888,14 @@ def value(self, value: Optional[pulumi.Input[_builtins.str]]): if not MYPY: class ObservabilityAlertgroupRuleArgsDict(TypedDict): - alert: pulumi.Input[_builtins.str] - """ - The name of the alert rule. Is the identifier and must be unique in the group. - """ expression: pulumi.Input[_builtins.str] """ The PromQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. """ + alert: NotRequired[pulumi.Input[_builtins.str]] + """ + The name of the alert rule. Is the identifier and must be unique in the group. + """ annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] """ A map of key:value. Annotations to add or overwrite for each alert @@ -2795,44 +2908,41 @@ class ObservabilityAlertgroupRuleArgsDict(TypedDict): """ A map of key:value. Labels to add or overwrite for each alert """ + record: NotRequired[pulumi.Input[_builtins.str]] + """ + The name of the metric. It's the identifier and must be unique in the group. + """ elif False: ObservabilityAlertgroupRuleArgsDict: TypeAlias = Mapping[str, Any] @pulumi.input_type class ObservabilityAlertgroupRuleArgs: def __init__(__self__, *, - alert: pulumi.Input[_builtins.str], expression: pulumi.Input[_builtins.str], + alert: Optional[pulumi.Input[_builtins.str]] = None, annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None, for_: Optional[pulumi.Input[_builtins.str]] = None, - labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None): + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None, + record: Optional[pulumi.Input[_builtins.str]] = None): """ - :param pulumi.Input[_builtins.str] alert: The name of the alert rule. Is the identifier and must be unique in the group. :param pulumi.Input[_builtins.str] expression: The PromQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. + :param pulumi.Input[_builtins.str] alert: The name of the alert rule. Is the identifier and must be unique in the group. :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: A map of key:value. Annotations to add or overwrite for each alert :param pulumi.Input[_builtins.str] for_: Alerts are considered firing once they have been returned for this long. Alerts which have not yet fired for long enough are considered pending. Default is 0s :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: A map of key:value. Labels to add or overwrite for each alert + :param pulumi.Input[_builtins.str] record: The name of the metric. It's the identifier and must be unique in the group. """ - pulumi.set(__self__, "alert", alert) pulumi.set(__self__, "expression", expression) + if alert is not None: + pulumi.set(__self__, "alert", alert) if annotations is not None: pulumi.set(__self__, "annotations", annotations) if for_ is not None: pulumi.set(__self__, "for_", for_) if labels is not None: pulumi.set(__self__, "labels", labels) - - @_builtins.property - @pulumi.getter - def alert(self) -> pulumi.Input[_builtins.str]: - """ - The name of the alert rule. Is the identifier and must be unique in the group. - """ - return pulumi.get(self, "alert") - - @alert.setter - def alert(self, value: pulumi.Input[_builtins.str]): - pulumi.set(self, "alert", value) + if record is not None: + pulumi.set(__self__, "record", record) @_builtins.property @pulumi.getter @@ -2846,6 +2956,18 @@ def expression(self) -> pulumi.Input[_builtins.str]: def expression(self, value: pulumi.Input[_builtins.str]): pulumi.set(self, "expression", value) + @_builtins.property + @pulumi.getter + def alert(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The name of the alert rule. Is the identifier and must be unique in the group. + """ + return pulumi.get(self, "alert") + + @alert.setter + def alert(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "alert", value) + @_builtins.property @pulumi.getter def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]: @@ -2882,6 +3004,18 @@ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.st def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]): pulumi.set(self, "labels", value) + @_builtins.property + @pulumi.getter + def record(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The name of the metric. It's the identifier and must be unique in the group. + """ + return pulumi.get(self, "record") + + @record.setter + def record(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "record", value) + if not MYPY: class ObservabilityInstanceAlertConfigArgsDict(TypedDict): @@ -3578,6 +3712,10 @@ class ObservabilityInstanceAlertConfigRouteArgsDict(TypedDict): """ The name of the receiver to route the alerts to. """ + continue_: NotRequired[pulumi.Input[_builtins.bool]] + """ + Whether an alert should continue matching subsequent sibling nodes. + """ group_bies: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] """ The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping. @@ -3605,6 +3743,7 @@ class ObservabilityInstanceAlertConfigRouteArgsDict(TypedDict): class ObservabilityInstanceAlertConfigRouteArgs: def __init__(__self__, *, receiver: pulumi.Input[_builtins.str], + continue_: Optional[pulumi.Input[_builtins.bool]] = None, group_bies: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, group_interval: Optional[pulumi.Input[_builtins.str]] = None, group_wait: Optional[pulumi.Input[_builtins.str]] = None, @@ -3612,6 +3751,7 @@ def __init__(__self__, *, routes: Optional[pulumi.Input[Sequence[pulumi.Input['ObservabilityInstanceAlertConfigRouteRouteArgs']]]] = None): """ :param pulumi.Input[_builtins.str] receiver: The name of the receiver to route the alerts to. + :param pulumi.Input[_builtins.bool] continue_: Whether an alert should continue matching subsequent sibling nodes. :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] group_bies: The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping. :param pulumi.Input[_builtins.str] group_interval: How long to wait before sending a notification about new alerts that are added to a group of alerts for which an initial notification has already been sent. (Usually ~5m or more.) :param pulumi.Input[_builtins.str] group_wait: How long to initially wait to send a notification for a group of alerts. Allows to wait for an inhibiting alert to arrive or collect more initial alerts for the same group. (Usually ~0s to few minutes.) @@ -3619,6 +3759,8 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['ObservabilityInstanceAlertConfigRouteRouteArgs']]] routes: List of child routes. """ pulumi.set(__self__, "receiver", receiver) + if continue_ is not None: + pulumi.set(__self__, "continue_", continue_) if group_bies is not None: pulumi.set(__self__, "group_bies", group_bies) if group_interval is not None: @@ -3642,6 +3784,18 @@ def receiver(self) -> pulumi.Input[_builtins.str]: def receiver(self, value: pulumi.Input[_builtins.str]): pulumi.set(self, "receiver", value) + @_builtins.property + @pulumi.getter(name="continue") + def continue_(self) -> Optional[pulumi.Input[_builtins.bool]]: + """ + Whether an alert should continue matching subsequent sibling nodes. + """ + return pulumi.get(self, "continue_") + + @continue_.setter + def continue_(self, value: Optional[pulumi.Input[_builtins.bool]]): + pulumi.set(self, "continue_", value) + @_builtins.property @pulumi.getter(name="groupBies") def group_bies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]: diff --git a/sdk/python/pulumi_stackit/get_logs_access_token.py b/sdk/python/pulumi_stackit/get_logs_access_token.py new file mode 100644 index 0000000..96f41e4 --- /dev/null +++ b/sdk/python/pulumi_stackit/get_logs_access_token.py @@ -0,0 +1,253 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = [ + 'GetLogsAccessTokenResult', + 'AwaitableGetLogsAccessTokenResult', + 'get_logs_access_token', + 'get_logs_access_token_output', +] + +@pulumi.output_type +class GetLogsAccessTokenResult: + """ + A collection of values returned by getLogsAccessToken. + """ + def __init__(__self__, access_token_id=None, creator=None, description=None, display_name=None, expires=None, id=None, instance_id=None, permissions=None, project_id=None, region=None, status=None, valid_until=None): + if access_token_id and not isinstance(access_token_id, str): + raise TypeError("Expected argument 'access_token_id' to be a str") + pulumi.set(__self__, "access_token_id", access_token_id) + if creator and not isinstance(creator, str): + raise TypeError("Expected argument 'creator' to be a str") + pulumi.set(__self__, "creator", creator) + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if display_name and not isinstance(display_name, str): + raise TypeError("Expected argument 'display_name' to be a str") + pulumi.set(__self__, "display_name", display_name) + if expires and not isinstance(expires, bool): + raise TypeError("Expected argument 'expires' to be a bool") + pulumi.set(__self__, "expires", expires) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if instance_id and not isinstance(instance_id, str): + raise TypeError("Expected argument 'instance_id' to be a str") + pulumi.set(__self__, "instance_id", instance_id) + if permissions and not isinstance(permissions, list): + raise TypeError("Expected argument 'permissions' to be a list") + pulumi.set(__self__, "permissions", permissions) + if project_id and not isinstance(project_id, str): + raise TypeError("Expected argument 'project_id' to be a str") + pulumi.set(__self__, "project_id", project_id) + if region and not isinstance(region, str): + raise TypeError("Expected argument 'region' to be a str") + pulumi.set(__self__, "region", region) + if status and not isinstance(status, str): + raise TypeError("Expected argument 'status' to be a str") + pulumi.set(__self__, "status", status) + if valid_until and not isinstance(valid_until, str): + raise TypeError("Expected argument 'valid_until' to be a str") + pulumi.set(__self__, "valid_until", valid_until) + + @_builtins.property + @pulumi.getter(name="accessTokenId") + def access_token_id(self) -> _builtins.str: + """ + The access token ID + """ + return pulumi.get(self, "access_token_id") + + @_builtins.property + @pulumi.getter + def creator(self) -> _builtins.str: + """ + The user who created the access token + """ + return pulumi.get(self, "creator") + + @_builtins.property + @pulumi.getter + def description(self) -> _builtins.str: + """ + The description of the access token + """ + return pulumi.get(self, "description") + + @_builtins.property + @pulumi.getter(name="displayName") + def display_name(self) -> _builtins.str: + """ + The displayed name of the access token + """ + return pulumi.get(self, "display_name") + + @_builtins.property + @pulumi.getter + def expires(self) -> _builtins.bool: + """ + Indicates if the access token can expire + """ + return pulumi.get(self, "expires") + + @_builtins.property + @pulumi.getter + def id(self) -> _builtins.str: + return pulumi.get(self, "id") + + @_builtins.property + @pulumi.getter(name="instanceId") + def instance_id(self) -> _builtins.str: + """ + The Logs instance ID associated with the access token + """ + return pulumi.get(self, "instance_id") + + @_builtins.property + @pulumi.getter + def permissions(self) -> Sequence[_builtins.str]: + """ + The access permissions granted to the access token. Possible values: `read`, `write`. + """ + return pulumi.get(self, "permissions") + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> _builtins.str: + """ + STACKIT project ID associated with the Logs access token + """ + return pulumi.get(self, "project_id") + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[_builtins.str]: + """ + STACKIT region name the resource is located in. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @_builtins.property + @pulumi.getter + def status(self) -> _builtins.str: + """ + The status of the access token. Possible values are: `active`, `expired`. + """ + return pulumi.get(self, "status") + + @_builtins.property + @pulumi.getter(name="validUntil") + def valid_until(self) -> _builtins.str: + """ + The date and time until an access token is valid to (inclusively) + """ + return pulumi.get(self, "valid_until") + + +class AwaitableGetLogsAccessTokenResult(GetLogsAccessTokenResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetLogsAccessTokenResult( + access_token_id=self.access_token_id, + creator=self.creator, + description=self.description, + display_name=self.display_name, + expires=self.expires, + id=self.id, + instance_id=self.instance_id, + permissions=self.permissions, + project_id=self.project_id, + region=self.region, + status=self.status, + valid_until=self.valid_until) + + +def get_logs_access_token(access_token_id: Optional[_builtins.str] = None, + instance_id: Optional[_builtins.str] = None, + project_id: Optional[_builtins.str] = None, + region: Optional[_builtins.str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetLogsAccessTokenResult: + """ + Logs access token data source schema. Uses the `default_region` specified in the provider configuration as a fallback in case no `region` is defined on datasource level. + + ## Example Usage + + + :param _builtins.str access_token_id: The access token ID + :param _builtins.str instance_id: The Logs instance ID associated with the access token + :param _builtins.str project_id: STACKIT project ID associated with the Logs access token + :param _builtins.str region: STACKIT region name the resource is located in. If not defined, the provider region is used. + """ + __args__ = dict() + __args__['accessTokenId'] = access_token_id + __args__['instanceId'] = instance_id + __args__['projectId'] = project_id + __args__['region'] = region + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('stackit:index/getLogsAccessToken:getLogsAccessToken', __args__, opts=opts, typ=GetLogsAccessTokenResult).value + + return AwaitableGetLogsAccessTokenResult( + access_token_id=pulumi.get(__ret__, 'access_token_id'), + creator=pulumi.get(__ret__, 'creator'), + description=pulumi.get(__ret__, 'description'), + display_name=pulumi.get(__ret__, 'display_name'), + expires=pulumi.get(__ret__, 'expires'), + id=pulumi.get(__ret__, 'id'), + instance_id=pulumi.get(__ret__, 'instance_id'), + permissions=pulumi.get(__ret__, 'permissions'), + project_id=pulumi.get(__ret__, 'project_id'), + region=pulumi.get(__ret__, 'region'), + status=pulumi.get(__ret__, 'status'), + valid_until=pulumi.get(__ret__, 'valid_until')) +def get_logs_access_token_output(access_token_id: Optional[pulumi.Input[_builtins.str]] = None, + instance_id: Optional[pulumi.Input[_builtins.str]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[Optional[_builtins.str]]] = None, + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetLogsAccessTokenResult]: + """ + Logs access token data source schema. Uses the `default_region` specified in the provider configuration as a fallback in case no `region` is defined on datasource level. + + ## Example Usage + + + :param _builtins.str access_token_id: The access token ID + :param _builtins.str instance_id: The Logs instance ID associated with the access token + :param _builtins.str project_id: STACKIT project ID associated with the Logs access token + :param _builtins.str region: STACKIT region name the resource is located in. If not defined, the provider region is used. + """ + __args__ = dict() + __args__['accessTokenId'] = access_token_id + __args__['instanceId'] = instance_id + __args__['projectId'] = project_id + __args__['region'] = region + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('stackit:index/getLogsAccessToken:getLogsAccessToken', __args__, opts=opts, typ=GetLogsAccessTokenResult) + return __ret__.apply(lambda __response__: GetLogsAccessTokenResult( + access_token_id=pulumi.get(__response__, 'access_token_id'), + creator=pulumi.get(__response__, 'creator'), + description=pulumi.get(__response__, 'description'), + display_name=pulumi.get(__response__, 'display_name'), + expires=pulumi.get(__response__, 'expires'), + id=pulumi.get(__response__, 'id'), + instance_id=pulumi.get(__response__, 'instance_id'), + permissions=pulumi.get(__response__, 'permissions'), + project_id=pulumi.get(__response__, 'project_id'), + region=pulumi.get(__response__, 'region'), + status=pulumi.get(__response__, 'status'), + valid_until=pulumi.get(__response__, 'valid_until'))) diff --git a/sdk/python/pulumi_stackit/get_logs_instance.py b/sdk/python/pulumi_stackit/get_logs_instance.py index a300440..4186126 100644 --- a/sdk/python/pulumi_stackit/get_logs_instance.py +++ b/sdk/python/pulumi_stackit/get_logs_instance.py @@ -219,9 +219,7 @@ def get_logs_instance(instance_id: Optional[_builtins.str] = None, region: Optional[_builtins.str] = None, opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetLogsInstanceResult: """ - Logs instance data source schema. - - > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. + Logs instance data source schema. Uses the `default_region` specified in the provider configuration as a fallback in case no `region` is defined on datasource level. ## Example Usage @@ -258,9 +256,7 @@ def get_logs_instance_output(instance_id: Optional[pulumi.Input[_builtins.str]] region: Optional[pulumi.Input[Optional[_builtins.str]]] = None, opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetLogsInstanceResult]: """ - Logs instance data source schema. - - > This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. + Logs instance data source schema. Uses the `default_region` specified in the provider configuration as a fallback in case no `region` is defined on datasource level. ## Example Usage diff --git a/sdk/python/pulumi_stackit/get_network.py b/sdk/python/pulumi_stackit/get_network.py index 189ee34..d219eb0 100644 --- a/sdk/python/pulumi_stackit/get_network.py +++ b/sdk/python/pulumi_stackit/get_network.py @@ -26,7 +26,10 @@ class GetNetworkResult: """ A collection of values returned by getNetwork. """ - def __init__(__self__, id=None, ipv4_gateway=None, ipv4_nameservers=None, ipv4_prefix=None, ipv4_prefix_length=None, ipv4_prefixes=None, ipv6_gateway=None, ipv6_nameservers=None, ipv6_prefix=None, ipv6_prefix_length=None, ipv6_prefixes=None, labels=None, name=None, nameservers=None, network_id=None, prefixes=None, project_id=None, public_ip=None, region=None, routed=None, routing_table_id=None): + def __init__(__self__, dhcp=None, id=None, ipv4_gateway=None, ipv4_nameservers=None, ipv4_prefix=None, ipv4_prefix_length=None, ipv4_prefixes=None, ipv6_gateway=None, ipv6_nameservers=None, ipv6_prefix=None, ipv6_prefix_length=None, ipv6_prefixes=None, labels=None, name=None, nameservers=None, network_id=None, prefixes=None, project_id=None, public_ip=None, region=None, routed=None, routing_table_id=None): + if dhcp and not isinstance(dhcp, bool): + raise TypeError("Expected argument 'dhcp' to be a bool") + pulumi.set(__self__, "dhcp", dhcp) if id and not isinstance(id, str): raise TypeError("Expected argument 'id' to be a str") pulumi.set(__self__, "id", id) @@ -91,6 +94,14 @@ def __init__(__self__, id=None, ipv4_gateway=None, ipv4_nameservers=None, ipv4_p raise TypeError("Expected argument 'routing_table_id' to be a str") pulumi.set(__self__, "routing_table_id", routing_table_id) + @_builtins.property + @pulumi.getter + def dhcp(self) -> _builtins.bool: + """ + Shows if DHCP is enabled for the network. + """ + return pulumi.get(self, "dhcp") + @_builtins.property @pulumi.getter def id(self) -> _builtins.str: @@ -240,7 +251,6 @@ def public_ip(self) -> _builtins.str: @pulumi.getter def region(self) -> Optional[_builtins.str]: """ - Can only be used when experimental "network" is set. This is likely going to undergo significant changes or be removed in the future. The resource region. If not defined, the provider region is used. """ return pulumi.get(self, "region") @@ -257,7 +267,6 @@ def routed(self) -> _builtins.bool: @pulumi.getter(name="routingTableId") def routing_table_id(self) -> _builtins.str: """ - Can only be used when experimental "network" is set. This is likely going to undergo significant changes or be removed in the future. Use it at your own discretion. The ID of the routing table associated with the network. """ return pulumi.get(self, "routing_table_id") @@ -269,6 +278,7 @@ def __await__(self): if False: yield self return GetNetworkResult( + dhcp=self.dhcp, id=self.id, ipv4_gateway=self.ipv4_gateway, ipv4_nameservers=self.ipv4_nameservers, @@ -304,8 +314,7 @@ def get_network(network_id: Optional[_builtins.str] = None, :param _builtins.str network_id: The network ID. :param _builtins.str project_id: STACKIT project ID to which the network is associated. - :param _builtins.str region: Can only be used when experimental "network" is set. This is likely going to undergo significant changes or be removed in the future. - The resource region. If not defined, the provider region is used. + :param _builtins.str region: The resource region. If not defined, the provider region is used. """ __args__ = dict() __args__['networkId'] = network_id @@ -315,6 +324,7 @@ def get_network(network_id: Optional[_builtins.str] = None, __ret__ = pulumi.runtime.invoke('stackit:index/getNetwork:getNetwork', __args__, opts=opts, typ=GetNetworkResult).value return AwaitableGetNetworkResult( + dhcp=pulumi.get(__ret__, 'dhcp'), id=pulumi.get(__ret__, 'id'), ipv4_gateway=pulumi.get(__ret__, 'ipv4_gateway'), ipv4_nameservers=pulumi.get(__ret__, 'ipv4_nameservers'), @@ -348,8 +358,7 @@ def get_network_output(network_id: Optional[pulumi.Input[_builtins.str]] = None, :param _builtins.str network_id: The network ID. :param _builtins.str project_id: STACKIT project ID to which the network is associated. - :param _builtins.str region: Can only be used when experimental "network" is set. This is likely going to undergo significant changes or be removed in the future. - The resource region. If not defined, the provider region is used. + :param _builtins.str region: The resource region. If not defined, the provider region is used. """ __args__ = dict() __args__['networkId'] = network_id @@ -358,6 +367,7 @@ def get_network_output(network_id: Optional[pulumi.Input[_builtins.str]] = None, opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('stackit:index/getNetwork:getNetwork', __args__, opts=opts, typ=GetNetworkResult) return __ret__.apply(lambda __response__: GetNetworkResult( + dhcp=pulumi.get(__response__, 'dhcp'), id=pulumi.get(__response__, 'id'), ipv4_gateway=pulumi.get(__response__, 'ipv4_gateway'), ipv4_nameservers=pulumi.get(__response__, 'ipv4_nameservers'), diff --git a/sdk/python/pulumi_stackit/get_observability_instance.py b/sdk/python/pulumi_stackit/get_observability_instance.py index e2bb396..23bfdf1 100644 --- a/sdk/python/pulumi_stackit/get_observability_instance.py +++ b/sdk/python/pulumi_stackit/get_observability_instance.py @@ -27,7 +27,7 @@ class GetObservabilityInstanceResult: """ A collection of values returned by getObservabilityInstance. """ - def __init__(__self__, acls=None, alert_config=None, alerting_url=None, dashboard_url=None, grafana_admin_enabled=None, grafana_public_read_access=None, grafana_url=None, id=None, instance_id=None, is_updatable=None, jaeger_traces_url=None, jaeger_ui_url=None, logs_push_url=None, logs_retention_days=None, logs_url=None, metrics_push_url=None, metrics_retention_days=None, metrics_retention_days1h_downsampling=None, metrics_retention_days5m_downsampling=None, metrics_url=None, name=None, otlp_traces_url=None, parameters=None, plan_id=None, plan_name=None, project_id=None, targets_url=None, traces_retention_days=None, zipkin_spans_url=None): + def __init__(__self__, acls=None, alert_config=None, alerting_url=None, dashboard_url=None, grafana_admin_enabled=None, grafana_initial_admin_password=None, grafana_initial_admin_user=None, grafana_public_read_access=None, grafana_url=None, id=None, instance_id=None, is_updatable=None, jaeger_traces_url=None, jaeger_ui_url=None, logs_push_url=None, logs_retention_days=None, logs_url=None, metrics_push_url=None, metrics_retention_days=None, metrics_retention_days1h_downsampling=None, metrics_retention_days5m_downsampling=None, metrics_url=None, name=None, otlp_traces_url=None, parameters=None, plan_id=None, plan_name=None, project_id=None, targets_url=None, traces_retention_days=None, zipkin_spans_url=None): if acls and not isinstance(acls, list): raise TypeError("Expected argument 'acls' to be a list") pulumi.set(__self__, "acls", acls) @@ -43,6 +43,12 @@ def __init__(__self__, acls=None, alert_config=None, alerting_url=None, dashboar if grafana_admin_enabled and not isinstance(grafana_admin_enabled, bool): raise TypeError("Expected argument 'grafana_admin_enabled' to be a bool") pulumi.set(__self__, "grafana_admin_enabled", grafana_admin_enabled) + if grafana_initial_admin_password and not isinstance(grafana_initial_admin_password, str): + raise TypeError("Expected argument 'grafana_initial_admin_password' to be a str") + pulumi.set(__self__, "grafana_initial_admin_password", grafana_initial_admin_password) + if grafana_initial_admin_user and not isinstance(grafana_initial_admin_user, str): + raise TypeError("Expected argument 'grafana_initial_admin_user' to be a str") + pulumi.set(__self__, "grafana_initial_admin_user", grafana_initial_admin_user) if grafana_public_read_access and not isinstance(grafana_public_read_access, bool): raise TypeError("Expected argument 'grafana_public_read_access' to be a bool") pulumi.set(__self__, "grafana_public_read_access", grafana_public_read_access) @@ -156,6 +162,24 @@ def grafana_admin_enabled(self) -> _builtins.bool: """ return pulumi.get(self, "grafana_admin_enabled") + @_builtins.property + @pulumi.getter(name="grafanaInitialAdminPassword") + @_utilities.deprecated("""This attribute is deprecated and will be removed on July 5, 2026. Use `grafana_admin_enabled` instead.""") + def grafana_initial_admin_password(self) -> _builtins.str: + """ + Specifies an initial Grafana admin password. + """ + return pulumi.get(self, "grafana_initial_admin_password") + + @_builtins.property + @pulumi.getter(name="grafanaInitialAdminUser") + @_utilities.deprecated("""This attribute is deprecated and will be removed on July 5, 2026. Use `grafana_admin_enabled` instead.""") + def grafana_initial_admin_user(self) -> _builtins.str: + """ + Specifies an initial Grafana admin username. + """ + return pulumi.get(self, "grafana_initial_admin_user") + @_builtins.property @pulumi.getter(name="grafanaPublicReadAccess") def grafana_public_read_access(self) -> _builtins.bool: @@ -345,6 +369,8 @@ def __await__(self): alerting_url=self.alerting_url, dashboard_url=self.dashboard_url, grafana_admin_enabled=self.grafana_admin_enabled, + grafana_initial_admin_password=self.grafana_initial_admin_password, + grafana_initial_admin_user=self.grafana_initial_admin_user, grafana_public_read_access=self.grafana_public_read_access, grafana_url=self.grafana_url, id=self.id, @@ -395,6 +421,8 @@ def get_observability_instance(instance_id: Optional[_builtins.str] = None, alerting_url=pulumi.get(__ret__, 'alerting_url'), dashboard_url=pulumi.get(__ret__, 'dashboard_url'), grafana_admin_enabled=pulumi.get(__ret__, 'grafana_admin_enabled'), + grafana_initial_admin_password=pulumi.get(__ret__, 'grafana_initial_admin_password'), + grafana_initial_admin_user=pulumi.get(__ret__, 'grafana_initial_admin_user'), grafana_public_read_access=pulumi.get(__ret__, 'grafana_public_read_access'), grafana_url=pulumi.get(__ret__, 'grafana_url'), id=pulumi.get(__ret__, 'id'), @@ -442,6 +470,8 @@ def get_observability_instance_output(instance_id: Optional[pulumi.Input[_builti alerting_url=pulumi.get(__response__, 'alerting_url'), dashboard_url=pulumi.get(__response__, 'dashboard_url'), grafana_admin_enabled=pulumi.get(__response__, 'grafana_admin_enabled'), + grafana_initial_admin_password=pulumi.get(__response__, 'grafana_initial_admin_password'), + grafana_initial_admin_user=pulumi.get(__response__, 'grafana_initial_admin_user'), grafana_public_read_access=pulumi.get(__response__, 'grafana_public_read_access'), grafana_url=pulumi.get(__response__, 'grafana_url'), id=pulumi.get(__response__, 'id'), diff --git a/sdk/python/pulumi_stackit/logs_access_token.py b/sdk/python/pulumi_stackit/logs_access_token.py new file mode 100644 index 0000000..d085a30 --- /dev/null +++ b/sdk/python/pulumi_stackit/logs_access_token.py @@ -0,0 +1,611 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import builtins as _builtins +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = ['LogsAccessTokenArgs', 'LogsAccessToken'] + +@pulumi.input_type +class LogsAccessTokenArgs: + def __init__(__self__, *, + display_name: pulumi.Input[_builtins.str], + instance_id: pulumi.Input[_builtins.str], + permissions: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]], + project_id: pulumi.Input[_builtins.str], + description: Optional[pulumi.Input[_builtins.str]] = None, + lifetime: Optional[pulumi.Input[_builtins.int]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None): + """ + The set of arguments for constructing a LogsAccessToken resource. + :param pulumi.Input[_builtins.str] display_name: The displayed name of the access token + :param pulumi.Input[_builtins.str] instance_id: The Logs instance ID associated with the access token + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] permissions: The access permissions granted to the access token. Possible values: `read`, `write`. + :param pulumi.Input[_builtins.str] project_id: STACKIT project ID associated with the Logs access token + :param pulumi.Input[_builtins.str] description: The description of the access token + :param pulumi.Input[_builtins.int] lifetime: A lifetime period for an access token in days. If unset the token will not expire. + :param pulumi.Input[_builtins.str] region: STACKIT region name the resource is located in. If not defined, the provider region is used. + """ + pulumi.set(__self__, "display_name", display_name) + pulumi.set(__self__, "instance_id", instance_id) + pulumi.set(__self__, "permissions", permissions) + pulumi.set(__self__, "project_id", project_id) + if description is not None: + pulumi.set(__self__, "description", description) + if lifetime is not None: + pulumi.set(__self__, "lifetime", lifetime) + if region is not None: + pulumi.set(__self__, "region", region) + + @_builtins.property + @pulumi.getter(name="displayName") + def display_name(self) -> pulumi.Input[_builtins.str]: + """ + The displayed name of the access token + """ + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "display_name", value) + + @_builtins.property + @pulumi.getter(name="instanceId") + def instance_id(self) -> pulumi.Input[_builtins.str]: + """ + The Logs instance ID associated with the access token + """ + return pulumi.get(self, "instance_id") + + @instance_id.setter + def instance_id(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "instance_id", value) + + @_builtins.property + @pulumi.getter + def permissions(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]: + """ + The access permissions granted to the access token. Possible values: `read`, `write`. + """ + return pulumi.get(self, "permissions") + + @permissions.setter + def permissions(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]): + pulumi.set(self, "permissions", value) + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Input[_builtins.str]: + """ + STACKIT project ID associated with the Logs access token + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: pulumi.Input[_builtins.str]): + pulumi.set(self, "project_id", value) + + @_builtins.property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The description of the access token + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "description", value) + + @_builtins.property + @pulumi.getter + def lifetime(self) -> Optional[pulumi.Input[_builtins.int]]: + """ + A lifetime period for an access token in days. If unset the token will not expire. + """ + return pulumi.get(self, "lifetime") + + @lifetime.setter + def lifetime(self, value: Optional[pulumi.Input[_builtins.int]]): + pulumi.set(self, "lifetime", value) + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + STACKIT region name the resource is located in. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "region", value) + + +@pulumi.input_type +class _LogsAccessTokenState: + def __init__(__self__, *, + access_token: Optional[pulumi.Input[_builtins.str]] = None, + access_token_id: Optional[pulumi.Input[_builtins.str]] = None, + creator: Optional[pulumi.Input[_builtins.str]] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + display_name: Optional[pulumi.Input[_builtins.str]] = None, + expires: Optional[pulumi.Input[_builtins.bool]] = None, + instance_id: Optional[pulumi.Input[_builtins.str]] = None, + lifetime: Optional[pulumi.Input[_builtins.int]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + status: Optional[pulumi.Input[_builtins.str]] = None, + valid_until: Optional[pulumi.Input[_builtins.str]] = None): + """ + Input properties used for looking up and filtering LogsAccessToken resources. + :param pulumi.Input[_builtins.str] access_token: The generated access token + :param pulumi.Input[_builtins.str] access_token_id: The access token ID + :param pulumi.Input[_builtins.str] creator: The user who created the access token + :param pulumi.Input[_builtins.str] description: The description of the access token + :param pulumi.Input[_builtins.str] display_name: The displayed name of the access token + :param pulumi.Input[_builtins.bool] expires: Indicates if the access token can expire + :param pulumi.Input[_builtins.str] instance_id: The Logs instance ID associated with the access token + :param pulumi.Input[_builtins.int] lifetime: A lifetime period for an access token in days. If unset the token will not expire. + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] permissions: The access permissions granted to the access token. Possible values: `read`, `write`. + :param pulumi.Input[_builtins.str] project_id: STACKIT project ID associated with the Logs access token + :param pulumi.Input[_builtins.str] region: STACKIT region name the resource is located in. If not defined, the provider region is used. + :param pulumi.Input[_builtins.str] status: The status of the access token. Possible values are: `active`, `expired`. + :param pulumi.Input[_builtins.str] valid_until: The date and time until an access token is valid to (inclusively) + """ + if access_token is not None: + pulumi.set(__self__, "access_token", access_token) + if access_token_id is not None: + pulumi.set(__self__, "access_token_id", access_token_id) + if creator is not None: + pulumi.set(__self__, "creator", creator) + if description is not None: + pulumi.set(__self__, "description", description) + if display_name is not None: + pulumi.set(__self__, "display_name", display_name) + if expires is not None: + pulumi.set(__self__, "expires", expires) + if instance_id is not None: + pulumi.set(__self__, "instance_id", instance_id) + if lifetime is not None: + pulumi.set(__self__, "lifetime", lifetime) + if permissions is not None: + pulumi.set(__self__, "permissions", permissions) + if project_id is not None: + pulumi.set(__self__, "project_id", project_id) + if region is not None: + pulumi.set(__self__, "region", region) + if status is not None: + pulumi.set(__self__, "status", status) + if valid_until is not None: + pulumi.set(__self__, "valid_until", valid_until) + + @_builtins.property + @pulumi.getter(name="accessToken") + def access_token(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The generated access token + """ + return pulumi.get(self, "access_token") + + @access_token.setter + def access_token(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "access_token", value) + + @_builtins.property + @pulumi.getter(name="accessTokenId") + def access_token_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The access token ID + """ + return pulumi.get(self, "access_token_id") + + @access_token_id.setter + def access_token_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "access_token_id", value) + + @_builtins.property + @pulumi.getter + def creator(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The user who created the access token + """ + return pulumi.get(self, "creator") + + @creator.setter + def creator(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "creator", value) + + @_builtins.property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The description of the access token + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "description", value) + + @_builtins.property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The displayed name of the access token + """ + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "display_name", value) + + @_builtins.property + @pulumi.getter + def expires(self) -> Optional[pulumi.Input[_builtins.bool]]: + """ + Indicates if the access token can expire + """ + return pulumi.get(self, "expires") + + @expires.setter + def expires(self, value: Optional[pulumi.Input[_builtins.bool]]): + pulumi.set(self, "expires", value) + + @_builtins.property + @pulumi.getter(name="instanceId") + def instance_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The Logs instance ID associated with the access token + """ + return pulumi.get(self, "instance_id") + + @instance_id.setter + def instance_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "instance_id", value) + + @_builtins.property + @pulumi.getter + def lifetime(self) -> Optional[pulumi.Input[_builtins.int]]: + """ + A lifetime period for an access token in days. If unset the token will not expire. + """ + return pulumi.get(self, "lifetime") + + @lifetime.setter + def lifetime(self, value: Optional[pulumi.Input[_builtins.int]]): + pulumi.set(self, "lifetime", value) + + @_builtins.property + @pulumi.getter + def permissions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]: + """ + The access permissions granted to the access token. Possible values: `read`, `write`. + """ + return pulumi.get(self, "permissions") + + @permissions.setter + def permissions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]): + pulumi.set(self, "permissions", value) + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + STACKIT project ID associated with the Logs access token + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "project_id", value) + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + STACKIT region name the resource is located in. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "region", value) + + @_builtins.property + @pulumi.getter + def status(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The status of the access token. Possible values are: `active`, `expired`. + """ + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "status", value) + + @_builtins.property + @pulumi.getter(name="validUntil") + def valid_until(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The date and time until an access token is valid to (inclusively) + """ + return pulumi.get(self, "valid_until") + + @valid_until.setter + def valid_until(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "valid_until", value) + + +@pulumi.type_token("stackit:index/logsAccessToken:LogsAccessToken") +class LogsAccessToken(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + display_name: Optional[pulumi.Input[_builtins.str]] = None, + instance_id: Optional[pulumi.Input[_builtins.str]] = None, + lifetime: Optional[pulumi.Input[_builtins.int]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + __props__=None): + """ + Logs access token resource schema. Uses the `default_region` specified in the provider configuration as a fallback in case no `region` is defined on resource level. + + ## Example Usage + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.str] description: The description of the access token + :param pulumi.Input[_builtins.str] display_name: The displayed name of the access token + :param pulumi.Input[_builtins.str] instance_id: The Logs instance ID associated with the access token + :param pulumi.Input[_builtins.int] lifetime: A lifetime period for an access token in days. If unset the token will not expire. + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] permissions: The access permissions granted to the access token. Possible values: `read`, `write`. + :param pulumi.Input[_builtins.str] project_id: STACKIT project ID associated with the Logs access token + :param pulumi.Input[_builtins.str] region: STACKIT region name the resource is located in. If not defined, the provider region is used. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: LogsAccessTokenArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Logs access token resource schema. Uses the `default_region` specified in the provider configuration as a fallback in case no `region` is defined on resource level. + + ## Example Usage + + :param str resource_name: The name of the resource. + :param LogsAccessTokenArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(LogsAccessTokenArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + display_name: Optional[pulumi.Input[_builtins.str]] = None, + instance_id: Optional[pulumi.Input[_builtins.str]] = None, + lifetime: Optional[pulumi.Input[_builtins.int]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = LogsAccessTokenArgs.__new__(LogsAccessTokenArgs) + + __props__.__dict__["description"] = description + if display_name is None and not opts.urn: + raise TypeError("Missing required property 'display_name'") + __props__.__dict__["display_name"] = display_name + if instance_id is None and not opts.urn: + raise TypeError("Missing required property 'instance_id'") + __props__.__dict__["instance_id"] = instance_id + __props__.__dict__["lifetime"] = lifetime + if permissions is None and not opts.urn: + raise TypeError("Missing required property 'permissions'") + __props__.__dict__["permissions"] = permissions + if project_id is None and not opts.urn: + raise TypeError("Missing required property 'project_id'") + __props__.__dict__["project_id"] = project_id + __props__.__dict__["region"] = region + __props__.__dict__["access_token"] = None + __props__.__dict__["access_token_id"] = None + __props__.__dict__["creator"] = None + __props__.__dict__["expires"] = None + __props__.__dict__["status"] = None + __props__.__dict__["valid_until"] = None + secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["accessToken"]) + opts = pulumi.ResourceOptions.merge(opts, secret_opts) + super(LogsAccessToken, __self__).__init__( + 'stackit:index/logsAccessToken:LogsAccessToken', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + access_token: Optional[pulumi.Input[_builtins.str]] = None, + access_token_id: Optional[pulumi.Input[_builtins.str]] = None, + creator: Optional[pulumi.Input[_builtins.str]] = None, + description: Optional[pulumi.Input[_builtins.str]] = None, + display_name: Optional[pulumi.Input[_builtins.str]] = None, + expires: Optional[pulumi.Input[_builtins.bool]] = None, + instance_id: Optional[pulumi.Input[_builtins.str]] = None, + lifetime: Optional[pulumi.Input[_builtins.int]] = None, + permissions: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, + project_id: Optional[pulumi.Input[_builtins.str]] = None, + region: Optional[pulumi.Input[_builtins.str]] = None, + status: Optional[pulumi.Input[_builtins.str]] = None, + valid_until: Optional[pulumi.Input[_builtins.str]] = None) -> 'LogsAccessToken': + """ + Get an existing LogsAccessToken resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.str] access_token: The generated access token + :param pulumi.Input[_builtins.str] access_token_id: The access token ID + :param pulumi.Input[_builtins.str] creator: The user who created the access token + :param pulumi.Input[_builtins.str] description: The description of the access token + :param pulumi.Input[_builtins.str] display_name: The displayed name of the access token + :param pulumi.Input[_builtins.bool] expires: Indicates if the access token can expire + :param pulumi.Input[_builtins.str] instance_id: The Logs instance ID associated with the access token + :param pulumi.Input[_builtins.int] lifetime: A lifetime period for an access token in days. If unset the token will not expire. + :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] permissions: The access permissions granted to the access token. Possible values: `read`, `write`. + :param pulumi.Input[_builtins.str] project_id: STACKIT project ID associated with the Logs access token + :param pulumi.Input[_builtins.str] region: STACKIT region name the resource is located in. If not defined, the provider region is used. + :param pulumi.Input[_builtins.str] status: The status of the access token. Possible values are: `active`, `expired`. + :param pulumi.Input[_builtins.str] valid_until: The date and time until an access token is valid to (inclusively) + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _LogsAccessTokenState.__new__(_LogsAccessTokenState) + + __props__.__dict__["access_token"] = access_token + __props__.__dict__["access_token_id"] = access_token_id + __props__.__dict__["creator"] = creator + __props__.__dict__["description"] = description + __props__.__dict__["display_name"] = display_name + __props__.__dict__["expires"] = expires + __props__.__dict__["instance_id"] = instance_id + __props__.__dict__["lifetime"] = lifetime + __props__.__dict__["permissions"] = permissions + __props__.__dict__["project_id"] = project_id + __props__.__dict__["region"] = region + __props__.__dict__["status"] = status + __props__.__dict__["valid_until"] = valid_until + return LogsAccessToken(resource_name, opts=opts, __props__=__props__) + + @_builtins.property + @pulumi.getter(name="accessToken") + def access_token(self) -> pulumi.Output[_builtins.str]: + """ + The generated access token + """ + return pulumi.get(self, "access_token") + + @_builtins.property + @pulumi.getter(name="accessTokenId") + def access_token_id(self) -> pulumi.Output[_builtins.str]: + """ + The access token ID + """ + return pulumi.get(self, "access_token_id") + + @_builtins.property + @pulumi.getter + def creator(self) -> pulumi.Output[_builtins.str]: + """ + The user who created the access token + """ + return pulumi.get(self, "creator") + + @_builtins.property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[_builtins.str]]: + """ + The description of the access token + """ + return pulumi.get(self, "description") + + @_builtins.property + @pulumi.getter(name="displayName") + def display_name(self) -> pulumi.Output[_builtins.str]: + """ + The displayed name of the access token + """ + return pulumi.get(self, "display_name") + + @_builtins.property + @pulumi.getter + def expires(self) -> pulumi.Output[_builtins.bool]: + """ + Indicates if the access token can expire + """ + return pulumi.get(self, "expires") + + @_builtins.property + @pulumi.getter(name="instanceId") + def instance_id(self) -> pulumi.Output[_builtins.str]: + """ + The Logs instance ID associated with the access token + """ + return pulumi.get(self, "instance_id") + + @_builtins.property + @pulumi.getter + def lifetime(self) -> pulumi.Output[Optional[_builtins.int]]: + """ + A lifetime period for an access token in days. If unset the token will not expire. + """ + return pulumi.get(self, "lifetime") + + @_builtins.property + @pulumi.getter + def permissions(self) -> pulumi.Output[Sequence[_builtins.str]]: + """ + The access permissions granted to the access token. Possible values: `read`, `write`. + """ + return pulumi.get(self, "permissions") + + @_builtins.property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Output[_builtins.str]: + """ + STACKIT project ID associated with the Logs access token + """ + return pulumi.get(self, "project_id") + + @_builtins.property + @pulumi.getter + def region(self) -> pulumi.Output[_builtins.str]: + """ + STACKIT region name the resource is located in. If not defined, the provider region is used. + """ + return pulumi.get(self, "region") + + @_builtins.property + @pulumi.getter + def status(self) -> pulumi.Output[_builtins.str]: + """ + The status of the access token. Possible values are: `active`, `expired`. + """ + return pulumi.get(self, "status") + + @_builtins.property + @pulumi.getter(name="validUntil") + def valid_until(self) -> pulumi.Output[_builtins.str]: + """ + The date and time until an access token is valid to (inclusively) + """ + return pulumi.get(self, "valid_until") + diff --git a/sdk/python/pulumi_stackit/logs_instance.py b/sdk/python/pulumi_stackit/logs_instance.py index df63d20..f9d149c 100644 --- a/sdk/python/pulumi_stackit/logs_instance.py +++ b/sdk/python/pulumi_stackit/logs_instance.py @@ -363,9 +363,7 @@ def __init__(__self__, retention_days: Optional[pulumi.Input[_builtins.int]] = None, __props__=None): """ - Logs instance resource schema. - - > This resource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. + Logs instance resource schema. Uses the `default_region` specified in the provider configuration as a fallback in case no `region` is defined on resource level. ## Example Usage @@ -385,9 +383,7 @@ def __init__(__self__, args: LogsInstanceArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - Logs instance resource schema. - - > This resource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources. + Logs instance resource schema. Uses the `default_region` specified in the provider configuration as a fallback in case no `region` is defined on resource level. ## Example Usage diff --git a/sdk/python/pulumi_stackit/network.py b/sdk/python/pulumi_stackit/network.py index 082c73d..846b0d5 100644 --- a/sdk/python/pulumi_stackit/network.py +++ b/sdk/python/pulumi_stackit/network.py @@ -20,6 +20,7 @@ class NetworkArgs: def __init__(__self__, *, project_id: pulumi.Input[_builtins.str], + dhcp: Optional[pulumi.Input[_builtins.bool]] = None, ipv4_gateway: Optional[pulumi.Input[_builtins.str]] = None, ipv4_nameservers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, ipv4_prefix: Optional[pulumi.Input[_builtins.str]] = None, @@ -39,6 +40,7 @@ def __init__(__self__, *, """ The set of arguments for constructing a Network resource. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the network is associated. + :param pulumi.Input[_builtins.bool] dhcp: If the network has DHCP enabled. Default value is `true`. :param pulumi.Input[_builtins.str] ipv4_gateway: The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway. :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] ipv4_nameservers: The IPv4 nameservers of the network. :param pulumi.Input[_builtins.str] ipv4_prefix: The IPv4 prefix of the network (CIDR). @@ -57,6 +59,8 @@ def __init__(__self__, *, :param pulumi.Input[_builtins.str] routing_table_id: The ID of the routing table associated with the network. """ pulumi.set(__self__, "project_id", project_id) + if dhcp is not None: + pulumi.set(__self__, "dhcp", dhcp) if ipv4_gateway is not None: pulumi.set(__self__, "ipv4_gateway", ipv4_gateway) if ipv4_nameservers is not None: @@ -105,6 +109,18 @@ def project_id(self) -> pulumi.Input[_builtins.str]: def project_id(self, value: pulumi.Input[_builtins.str]): pulumi.set(self, "project_id", value) + @_builtins.property + @pulumi.getter + def dhcp(self) -> Optional[pulumi.Input[_builtins.bool]]: + """ + If the network has DHCP enabled. Default value is `true`. + """ + return pulumi.get(self, "dhcp") + + @dhcp.setter + def dhcp(self, value: Optional[pulumi.Input[_builtins.bool]]): + pulumi.set(self, "dhcp", value) + @_builtins.property @pulumi.getter(name="ipv4Gateway") def ipv4_gateway(self) -> Optional[pulumi.Input[_builtins.str]]: @@ -302,6 +318,7 @@ def routing_table_id(self, value: Optional[pulumi.Input[_builtins.str]]): @pulumi.input_type class _NetworkState: def __init__(__self__, *, + dhcp: Optional[pulumi.Input[_builtins.bool]] = None, ipv4_gateway: Optional[pulumi.Input[_builtins.str]] = None, ipv4_nameservers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, ipv4_prefix: Optional[pulumi.Input[_builtins.str]] = None, @@ -326,6 +343,7 @@ def __init__(__self__, *, routing_table_id: Optional[pulumi.Input[_builtins.str]] = None): """ Input properties used for looking up and filtering Network resources. + :param pulumi.Input[_builtins.bool] dhcp: If the network has DHCP enabled. Default value is `true`. :param pulumi.Input[_builtins.str] ipv4_gateway: The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway. :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] ipv4_nameservers: The IPv4 nameservers of the network. :param pulumi.Input[_builtins.str] ipv4_prefix: The IPv4 prefix of the network (CIDR). @@ -349,6 +367,8 @@ def __init__(__self__, *, :param pulumi.Input[_builtins.bool] routed: If set to `true`, the network is routed and therefore accessible from other networks. :param pulumi.Input[_builtins.str] routing_table_id: The ID of the routing table associated with the network. """ + if dhcp is not None: + pulumi.set(__self__, "dhcp", dhcp) if ipv4_gateway is not None: pulumi.set(__self__, "ipv4_gateway", ipv4_gateway) if ipv4_nameservers is not None: @@ -400,6 +420,18 @@ def __init__(__self__, *, if routing_table_id is not None: pulumi.set(__self__, "routing_table_id", routing_table_id) + @_builtins.property + @pulumi.getter + def dhcp(self) -> Optional[pulumi.Input[_builtins.bool]]: + """ + If the network has DHCP enabled. Default value is `true`. + """ + return pulumi.get(self, "dhcp") + + @dhcp.setter + def dhcp(self, value: Optional[pulumi.Input[_builtins.bool]]): + pulumi.set(self, "dhcp", value) + @_builtins.property @pulumi.getter(name="ipv4Gateway") def ipv4_gateway(self) -> Optional[pulumi.Input[_builtins.str]]: @@ -673,6 +705,7 @@ class Network(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + dhcp: Optional[pulumi.Input[_builtins.bool]] = None, ipv4_gateway: Optional[pulumi.Input[_builtins.str]] = None, ipv4_nameservers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, ipv4_prefix: Optional[pulumi.Input[_builtins.str]] = None, @@ -701,6 +734,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.bool] dhcp: If the network has DHCP enabled. Default value is `true`. :param pulumi.Input[_builtins.str] ipv4_gateway: The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway. :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] ipv4_nameservers: The IPv4 nameservers of the network. :param pulumi.Input[_builtins.str] ipv4_prefix: The IPv4 prefix of the network (CIDR). @@ -748,6 +782,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + dhcp: Optional[pulumi.Input[_builtins.bool]] = None, ipv4_gateway: Optional[pulumi.Input[_builtins.str]] = None, ipv4_nameservers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, ipv4_prefix: Optional[pulumi.Input[_builtins.str]] = None, @@ -774,6 +809,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = NetworkArgs.__new__(NetworkArgs) + __props__.__dict__["dhcp"] = dhcp __props__.__dict__["ipv4_gateway"] = ipv4_gateway __props__.__dict__["ipv4_nameservers"] = ipv4_nameservers __props__.__dict__["ipv4_prefix"] = ipv4_prefix @@ -808,6 +844,7 @@ def _internal_init(__self__, def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, + dhcp: Optional[pulumi.Input[_builtins.bool]] = None, ipv4_gateway: Optional[pulumi.Input[_builtins.str]] = None, ipv4_nameservers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None, ipv4_prefix: Optional[pulumi.Input[_builtins.str]] = None, @@ -837,6 +874,7 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[_builtins.bool] dhcp: If the network has DHCP enabled. Default value is `true`. :param pulumi.Input[_builtins.str] ipv4_gateway: The IPv4 gateway of a network. If not specified, the first IP of the network will be assigned as the gateway. :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] ipv4_nameservers: The IPv4 nameservers of the network. :param pulumi.Input[_builtins.str] ipv4_prefix: The IPv4 prefix of the network (CIDR). @@ -864,6 +902,7 @@ def get(resource_name: str, __props__ = _NetworkState.__new__(_NetworkState) + __props__.__dict__["dhcp"] = dhcp __props__.__dict__["ipv4_gateway"] = ipv4_gateway __props__.__dict__["ipv4_nameservers"] = ipv4_nameservers __props__.__dict__["ipv4_prefix"] = ipv4_prefix @@ -888,6 +927,14 @@ def get(resource_name: str, __props__.__dict__["routing_table_id"] = routing_table_id return Network(resource_name, opts=opts, __props__=__props__) + @_builtins.property + @pulumi.getter + def dhcp(self) -> pulumi.Output[_builtins.bool]: + """ + If the network has DHCP enabled. Default value is `true`. + """ + return pulumi.get(self, "dhcp") + @_builtins.property @pulumi.getter(name="ipv4Gateway") def ipv4_gateway(self) -> pulumi.Output[_builtins.str]: diff --git a/sdk/python/pulumi_stackit/observability_instance.py b/sdk/python/pulumi_stackit/observability_instance.py index e940de0..b6727c6 100644 --- a/sdk/python/pulumi_stackit/observability_instance.py +++ b/sdk/python/pulumi_stackit/observability_instance.py @@ -224,6 +224,8 @@ def __init__(__self__, *, alerting_url: Optional[pulumi.Input[_builtins.str]] = None, dashboard_url: Optional[pulumi.Input[_builtins.str]] = None, grafana_admin_enabled: Optional[pulumi.Input[_builtins.bool]] = None, + grafana_initial_admin_password: Optional[pulumi.Input[_builtins.str]] = None, + grafana_initial_admin_user: Optional[pulumi.Input[_builtins.str]] = None, grafana_public_read_access: Optional[pulumi.Input[_builtins.bool]] = None, grafana_url: Optional[pulumi.Input[_builtins.str]] = None, instance_id: Optional[pulumi.Input[_builtins.str]] = None, @@ -254,6 +256,8 @@ def __init__(__self__, *, :param pulumi.Input[_builtins.str] alerting_url: Specifies Alerting URL. :param pulumi.Input[_builtins.str] dashboard_url: Specifies Observability instance dashboard URL. :param pulumi.Input[_builtins.bool] grafana_admin_enabled: If true, a default Grafana server admin user is created. It's recommended to set this to false and use STACKIT SSO (Owner or Observability Grafana Server Admin role) instead. It is still possible to manually create a new Grafana admin user via the Grafana UI later. + :param pulumi.Input[_builtins.str] grafana_initial_admin_password: Specifies an initial Grafana admin password. + :param pulumi.Input[_builtins.str] grafana_initial_admin_user: Specifies an initial Grafana admin username. :param pulumi.Input[_builtins.bool] grafana_public_read_access: If true, anyone can access Grafana dashboards without logging in. :param pulumi.Input[_builtins.str] grafana_url: Specifies Grafana URL. :param pulumi.Input[_builtins.str] instance_id: The Observability instance ID. @@ -284,6 +288,16 @@ def __init__(__self__, *, pulumi.set(__self__, "dashboard_url", dashboard_url) if grafana_admin_enabled is not None: pulumi.set(__self__, "grafana_admin_enabled", grafana_admin_enabled) + if grafana_initial_admin_password is not None: + warnings.warn("""This attribute is deprecated and will be removed on July 5, 2026. Use `grafana_admin_enabled` instead.""", DeprecationWarning) + pulumi.log.warn("""grafana_initial_admin_password is deprecated: This attribute is deprecated and will be removed on July 5, 2026. Use `grafana_admin_enabled` instead.""") + if grafana_initial_admin_password is not None: + pulumi.set(__self__, "grafana_initial_admin_password", grafana_initial_admin_password) + if grafana_initial_admin_user is not None: + warnings.warn("""This attribute is deprecated and will be removed on July 5, 2026. Use `grafana_admin_enabled` instead.""", DeprecationWarning) + pulumi.log.warn("""grafana_initial_admin_user is deprecated: This attribute is deprecated and will be removed on July 5, 2026. Use `grafana_admin_enabled` instead.""") + if grafana_initial_admin_user is not None: + pulumi.set(__self__, "grafana_initial_admin_user", grafana_initial_admin_user) if grafana_public_read_access is not None: pulumi.set(__self__, "grafana_public_read_access", grafana_public_read_access) if grafana_url is not None: @@ -391,6 +405,32 @@ def grafana_admin_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]: def grafana_admin_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]): pulumi.set(self, "grafana_admin_enabled", value) + @_builtins.property + @pulumi.getter(name="grafanaInitialAdminPassword") + @_utilities.deprecated("""This attribute is deprecated and will be removed on July 5, 2026. Use `grafana_admin_enabled` instead.""") + def grafana_initial_admin_password(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Specifies an initial Grafana admin password. + """ + return pulumi.get(self, "grafana_initial_admin_password") + + @grafana_initial_admin_password.setter + def grafana_initial_admin_password(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "grafana_initial_admin_password", value) + + @_builtins.property + @pulumi.getter(name="grafanaInitialAdminUser") + @_utilities.deprecated("""This attribute is deprecated and will be removed on July 5, 2026. Use `grafana_admin_enabled` instead.""") + def grafana_initial_admin_user(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + Specifies an initial Grafana admin username. + """ + return pulumi.get(self, "grafana_initial_admin_user") + + @grafana_initial_admin_user.setter + def grafana_initial_admin_user(self, value: Optional[pulumi.Input[_builtins.str]]): + pulumi.set(self, "grafana_initial_admin_user", value) + @_builtins.property @pulumi.getter(name="grafanaPublicReadAccess") def grafana_public_read_access(self) -> Optional[pulumi.Input[_builtins.bool]]: @@ -760,6 +800,8 @@ def _internal_init(__self__, __props__.__dict__["traces_retention_days"] = traces_retention_days __props__.__dict__["alerting_url"] = None __props__.__dict__["dashboard_url"] = None + __props__.__dict__["grafana_initial_admin_password"] = None + __props__.__dict__["grafana_initial_admin_user"] = None __props__.__dict__["grafana_public_read_access"] = None __props__.__dict__["grafana_url"] = None __props__.__dict__["instance_id"] = None @@ -774,6 +816,8 @@ def _internal_init(__self__, __props__.__dict__["plan_id"] = None __props__.__dict__["targets_url"] = None __props__.__dict__["zipkin_spans_url"] = None + secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["grafanaInitialAdminPassword"]) + opts = pulumi.ResourceOptions.merge(opts, secret_opts) super(ObservabilityInstance, __self__).__init__( 'stackit:index/observabilityInstance:ObservabilityInstance', resource_name, @@ -789,6 +833,8 @@ def get(resource_name: str, alerting_url: Optional[pulumi.Input[_builtins.str]] = None, dashboard_url: Optional[pulumi.Input[_builtins.str]] = None, grafana_admin_enabled: Optional[pulumi.Input[_builtins.bool]] = None, + grafana_initial_admin_password: Optional[pulumi.Input[_builtins.str]] = None, + grafana_initial_admin_user: Optional[pulumi.Input[_builtins.str]] = None, grafana_public_read_access: Optional[pulumi.Input[_builtins.bool]] = None, grafana_url: Optional[pulumi.Input[_builtins.str]] = None, instance_id: Optional[pulumi.Input[_builtins.str]] = None, @@ -824,6 +870,8 @@ def get(resource_name: str, :param pulumi.Input[_builtins.str] alerting_url: Specifies Alerting URL. :param pulumi.Input[_builtins.str] dashboard_url: Specifies Observability instance dashboard URL. :param pulumi.Input[_builtins.bool] grafana_admin_enabled: If true, a default Grafana server admin user is created. It's recommended to set this to false and use STACKIT SSO (Owner or Observability Grafana Server Admin role) instead. It is still possible to manually create a new Grafana admin user via the Grafana UI later. + :param pulumi.Input[_builtins.str] grafana_initial_admin_password: Specifies an initial Grafana admin password. + :param pulumi.Input[_builtins.str] grafana_initial_admin_user: Specifies an initial Grafana admin username. :param pulumi.Input[_builtins.bool] grafana_public_read_access: If true, anyone can access Grafana dashboards without logging in. :param pulumi.Input[_builtins.str] grafana_url: Specifies Grafana URL. :param pulumi.Input[_builtins.str] instance_id: The Observability instance ID. @@ -853,6 +901,8 @@ def get(resource_name: str, __props__.__dict__["alerting_url"] = alerting_url __props__.__dict__["dashboard_url"] = dashboard_url __props__.__dict__["grafana_admin_enabled"] = grafana_admin_enabled + __props__.__dict__["grafana_initial_admin_password"] = grafana_initial_admin_password + __props__.__dict__["grafana_initial_admin_user"] = grafana_initial_admin_user __props__.__dict__["grafana_public_read_access"] = grafana_public_read_access __props__.__dict__["grafana_url"] = grafana_url __props__.__dict__["instance_id"] = instance_id @@ -918,6 +968,24 @@ def grafana_admin_enabled(self) -> pulumi.Output[_builtins.bool]: """ return pulumi.get(self, "grafana_admin_enabled") + @_builtins.property + @pulumi.getter(name="grafanaInitialAdminPassword") + @_utilities.deprecated("""This attribute is deprecated and will be removed on July 5, 2026. Use `grafana_admin_enabled` instead.""") + def grafana_initial_admin_password(self) -> pulumi.Output[_builtins.str]: + """ + Specifies an initial Grafana admin password. + """ + return pulumi.get(self, "grafana_initial_admin_password") + + @_builtins.property + @pulumi.getter(name="grafanaInitialAdminUser") + @_utilities.deprecated("""This attribute is deprecated and will be removed on July 5, 2026. Use `grafana_admin_enabled` instead.""") + def grafana_initial_admin_user(self) -> pulumi.Output[_builtins.str]: + """ + Specifies an initial Grafana admin username. + """ + return pulumi.get(self, "grafana_initial_admin_user") + @_builtins.property @pulumi.getter(name="grafanaPublicReadAccess") def grafana_public_read_access(self) -> pulumi.Output[_builtins.bool]: diff --git a/sdk/python/pulumi_stackit/outputs.py b/sdk/python/pulumi_stackit/outputs.py index 8d506d5..0ea9483 100644 --- a/sdk/python/pulumi_stackit/outputs.py +++ b/sdk/python/pulumi_stackit/outputs.py @@ -19,6 +19,7 @@ 'CdnCustomDomainCertificate', 'CdnDistributionConfig', 'CdnDistributionConfigBackend', + 'CdnDistributionConfigBackendCredentials', 'CdnDistributionConfigOptimizer', 'CdnDistributionDomain', 'ImageChecksum', @@ -311,10 +312,12 @@ class CdnDistributionConfigBackend(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "originUrl": - suggest = "origin_url" + if key == "bucketUrl": + suggest = "bucket_url" elif key == "originRequestHeaders": suggest = "origin_request_headers" + elif key == "originUrl": + suggest = "origin_url" if suggest: pulumi.log.warn(f"Key '{key}' not found in CdnDistributionConfigBackend. Access the value via the '{suggest}' property getter instead.") @@ -328,44 +331,65 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, - origin_url: _builtins.str, type: _builtins.str, + bucket_url: Optional[_builtins.str] = None, + credentials: Optional['outputs.CdnDistributionConfigBackendCredentials'] = None, geofencing: Optional[Mapping[str, Sequence[_builtins.str]]] = None, - origin_request_headers: Optional[Mapping[str, _builtins.str]] = None): - """ - :param _builtins.str origin_url: The configured backend type for the distribution - :param _builtins.str type: The configured backend type. Possible values are: `http`. - :param Mapping[str, Sequence[_builtins.str]] geofencing: A map of URLs to a list of countries where content is allowed. - :param Mapping[str, _builtins.str] origin_request_headers: The configured origin request headers for the backend + origin_request_headers: Optional[Mapping[str, _builtins.str]] = None, + origin_url: Optional[_builtins.str] = None, + region: Optional[_builtins.str] = None): + """ + :param _builtins.str type: The configured backend type. Possible values are: `http`, `bucket`. + :param _builtins.str bucket_url: The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + :param 'CdnDistributionConfigBackendCredentialsArgs' credentials: The credentials for the bucket. Required if type is 'bucket'. + :param Mapping[str, Sequence[_builtins.str]] geofencing: The configured type http to configure countries where content is allowed. A map of URLs to a list of countries + :param Mapping[str, _builtins.str] origin_request_headers: The configured type http origin request headers for the backend + :param _builtins.str origin_url: The configured backend type http for the distribution + :param _builtins.str region: The region where the bucket is hosted. Required if type is 'bucket'. """ - pulumi.set(__self__, "origin_url", origin_url) pulumi.set(__self__, "type", type) + if bucket_url is not None: + pulumi.set(__self__, "bucket_url", bucket_url) + if credentials is not None: + pulumi.set(__self__, "credentials", credentials) if geofencing is not None: pulumi.set(__self__, "geofencing", geofencing) if origin_request_headers is not None: pulumi.set(__self__, "origin_request_headers", origin_request_headers) + if origin_url is not None: + pulumi.set(__self__, "origin_url", origin_url) + if region is not None: + pulumi.set(__self__, "region", region) @_builtins.property - @pulumi.getter(name="originUrl") - def origin_url(self) -> _builtins.str: + @pulumi.getter + def type(self) -> _builtins.str: """ - The configured backend type for the distribution + The configured backend type. Possible values are: `http`, `bucket`. """ - return pulumi.get(self, "origin_url") + return pulumi.get(self, "type") + + @_builtins.property + @pulumi.getter(name="bucketUrl") + def bucket_url(self) -> Optional[_builtins.str]: + """ + The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + """ + return pulumi.get(self, "bucket_url") @_builtins.property @pulumi.getter - def type(self) -> _builtins.str: + def credentials(self) -> Optional['outputs.CdnDistributionConfigBackendCredentials']: """ - The configured backend type. Possible values are: `http`. + The credentials for the bucket. Required if type is 'bucket'. """ - return pulumi.get(self, "type") + return pulumi.get(self, "credentials") @_builtins.property @pulumi.getter def geofencing(self) -> Optional[Mapping[str, Sequence[_builtins.str]]]: """ - A map of URLs to a list of countries where content is allowed. + The configured type http to configure countries where content is allowed. A map of URLs to a list of countries """ return pulumi.get(self, "geofencing") @@ -373,10 +397,74 @@ def geofencing(self) -> Optional[Mapping[str, Sequence[_builtins.str]]]: @pulumi.getter(name="originRequestHeaders") def origin_request_headers(self) -> Optional[Mapping[str, _builtins.str]]: """ - The configured origin request headers for the backend + The configured type http origin request headers for the backend """ return pulumi.get(self, "origin_request_headers") + @_builtins.property + @pulumi.getter(name="originUrl") + def origin_url(self) -> Optional[_builtins.str]: + """ + The configured backend type http for the distribution + """ + return pulumi.get(self, "origin_url") + + @_builtins.property + @pulumi.getter + def region(self) -> Optional[_builtins.str]: + """ + The region where the bucket is hosted. Required if type is 'bucket'. + """ + return pulumi.get(self, "region") + + +@pulumi.output_type +class CdnDistributionConfigBackendCredentials(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "accessKeyId": + suggest = "access_key_id" + elif key == "secretAccessKey": + suggest = "secret_access_key" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CdnDistributionConfigBackendCredentials. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CdnDistributionConfigBackendCredentials.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CdnDistributionConfigBackendCredentials.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + access_key_id: _builtins.str, + secret_access_key: _builtins.str): + """ + :param _builtins.str access_key_id: The access key for the bucket. Required if type is 'bucket'. + :param _builtins.str secret_access_key: The access key for the bucket. Required if type is 'bucket'. + """ + pulumi.set(__self__, "access_key_id", access_key_id) + pulumi.set(__self__, "secret_access_key", secret_access_key) + + @_builtins.property + @pulumi.getter(name="accessKeyId") + def access_key_id(self) -> _builtins.str: + """ + The access key for the bucket. Required if type is 'bucket'. + """ + return pulumi.get(self, "access_key_id") + + @_builtins.property + @pulumi.getter(name="secretAccessKey") + def secret_access_key(self) -> _builtins.str: + """ + The access key for the bucket. Required if type is 'bucket'. + """ + return pulumi.get(self, "secret_access_key") + @pulumi.output_type class CdnDistributionConfigOptimizer(dict): @@ -2223,42 +2311,47 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, - alert: _builtins.str, expression: _builtins.str, + alert: Optional[_builtins.str] = None, annotations: Optional[Mapping[str, _builtins.str]] = None, for_: Optional[_builtins.str] = None, - labels: Optional[Mapping[str, _builtins.str]] = None): + labels: Optional[Mapping[str, _builtins.str]] = None, + record: Optional[_builtins.str] = None): """ - :param _builtins.str alert: The name of the alert rule. Is the identifier and must be unique in the group. :param _builtins.str expression: The PromQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. + :param _builtins.str alert: The name of the alert rule. Is the identifier and must be unique in the group. :param Mapping[str, _builtins.str] annotations: A map of key:value. Annotations to add or overwrite for each alert :param _builtins.str for_: Alerts are considered firing once they have been returned for this long. Alerts which have not yet fired for long enough are considered pending. Default is 0s :param Mapping[str, _builtins.str] labels: A map of key:value. Labels to add or overwrite for each alert + :param _builtins.str record: The name of the metric. It's the identifier and must be unique in the group. """ - pulumi.set(__self__, "alert", alert) pulumi.set(__self__, "expression", expression) + if alert is not None: + pulumi.set(__self__, "alert", alert) if annotations is not None: pulumi.set(__self__, "annotations", annotations) if for_ is not None: pulumi.set(__self__, "for_", for_) if labels is not None: pulumi.set(__self__, "labels", labels) + if record is not None: + pulumi.set(__self__, "record", record) @_builtins.property @pulumi.getter - def alert(self) -> _builtins.str: + def expression(self) -> _builtins.str: """ - The name of the alert rule. Is the identifier and must be unique in the group. + The PromQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. """ - return pulumi.get(self, "alert") + return pulumi.get(self, "expression") @_builtins.property @pulumi.getter - def expression(self) -> _builtins.str: + def alert(self) -> Optional[_builtins.str]: """ - The PromQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. + The name of the alert rule. Is the identifier and must be unique in the group. """ - return pulumi.get(self, "expression") + return pulumi.get(self, "alert") @_builtins.property @pulumi.getter @@ -2284,6 +2377,14 @@ def labels(self) -> Optional[Mapping[str, _builtins.str]]: """ return pulumi.get(self, "labels") + @_builtins.property + @pulumi.getter + def record(self) -> Optional[_builtins.str]: + """ + The name of the metric. It's the identifier and must be unique in the group. + """ + return pulumi.get(self, "record") + @pulumi.output_type class ObservabilityInstanceAlertConfig(dict): @@ -2839,7 +2940,9 @@ class ObservabilityInstanceAlertConfigRoute(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "groupBies": + if key == "continue": + suggest = "continue_" + elif key == "groupBies": suggest = "group_bies" elif key == "groupInterval": suggest = "group_interval" @@ -2861,6 +2964,7 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, receiver: _builtins.str, + continue_: Optional[_builtins.bool] = None, group_bies: Optional[Sequence[_builtins.str]] = None, group_interval: Optional[_builtins.str] = None, group_wait: Optional[_builtins.str] = None, @@ -2868,6 +2972,7 @@ def __init__(__self__, *, routes: Optional[Sequence['outputs.ObservabilityInstanceAlertConfigRouteRoute']] = None): """ :param _builtins.str receiver: The name of the receiver to route the alerts to. + :param _builtins.bool continue_: Whether an alert should continue matching subsequent sibling nodes. :param Sequence[_builtins.str] group_bies: The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping. :param _builtins.str group_interval: How long to wait before sending a notification about new alerts that are added to a group of alerts for which an initial notification has already been sent. (Usually ~5m or more.) :param _builtins.str group_wait: How long to initially wait to send a notification for a group of alerts. Allows to wait for an inhibiting alert to arrive or collect more initial alerts for the same group. (Usually ~0s to few minutes.) @@ -2875,6 +2980,8 @@ def __init__(__self__, *, :param Sequence['ObservabilityInstanceAlertConfigRouteRouteArgs'] routes: List of child routes. """ pulumi.set(__self__, "receiver", receiver) + if continue_ is not None: + pulumi.set(__self__, "continue_", continue_) if group_bies is not None: pulumi.set(__self__, "group_bies", group_bies) if group_interval is not None: @@ -2894,6 +3001,14 @@ def receiver(self) -> _builtins.str: """ return pulumi.get(self, "receiver") + @_builtins.property + @pulumi.getter(name="continue") + def continue_(self) -> Optional[_builtins.bool]: + """ + Whether an alert should continue matching subsequent sibling nodes. + """ + return pulumi.get(self, "continue_") + @_builtins.property @pulumi.getter(name="groupBies") def group_bies(self) -> Optional[Sequence[_builtins.str]]: @@ -5424,26 +5539,40 @@ def blocked_countries(self) -> Optional[Sequence[_builtins.str]]: @pulumi.output_type class GetCdnDistributionConfigBackendResult(dict): def __init__(__self__, *, + bucket_url: _builtins.str, geofencing: Mapping[str, Sequence[_builtins.str]], origin_request_headers: Mapping[str, _builtins.str], origin_url: _builtins.str, + region: _builtins.str, type: _builtins.str): """ - :param Mapping[str, Sequence[_builtins.str]] geofencing: A map of URLs to a list of countries where content is allowed. - :param Mapping[str, _builtins.str] origin_request_headers: The configured origin request headers for the backend - :param _builtins.str origin_url: The configured backend type for the distribution - :param _builtins.str type: The configured backend type. Possible values are: `http`. + :param _builtins.str bucket_url: The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + :param Mapping[str, Sequence[_builtins.str]] geofencing: The configured type http to configure countries where content is allowed. A map of URLs to a list of countries + :param Mapping[str, _builtins.str] origin_request_headers: The configured type http origin request headers for the backend + :param _builtins.str origin_url: The configured backend type http for the distribution + :param _builtins.str region: The region where the bucket is hosted. Required if type is 'bucket'. + :param _builtins.str type: The configured backend type. Possible values are: `http`, `bucket`. """ + pulumi.set(__self__, "bucket_url", bucket_url) pulumi.set(__self__, "geofencing", geofencing) pulumi.set(__self__, "origin_request_headers", origin_request_headers) pulumi.set(__self__, "origin_url", origin_url) + pulumi.set(__self__, "region", region) pulumi.set(__self__, "type", type) + @_builtins.property + @pulumi.getter(name="bucketUrl") + def bucket_url(self) -> _builtins.str: + """ + The URL of the bucket (e.g. https://s3.example.com). Required if type is 'bucket'. + """ + return pulumi.get(self, "bucket_url") + @_builtins.property @pulumi.getter def geofencing(self) -> Mapping[str, Sequence[_builtins.str]]: """ - A map of URLs to a list of countries where content is allowed. + The configured type http to configure countries where content is allowed. A map of URLs to a list of countries """ return pulumi.get(self, "geofencing") @@ -5451,7 +5580,7 @@ def geofencing(self) -> Mapping[str, Sequence[_builtins.str]]: @pulumi.getter(name="originRequestHeaders") def origin_request_headers(self) -> Mapping[str, _builtins.str]: """ - The configured origin request headers for the backend + The configured type http origin request headers for the backend """ return pulumi.get(self, "origin_request_headers") @@ -5459,15 +5588,23 @@ def origin_request_headers(self) -> Mapping[str, _builtins.str]: @pulumi.getter(name="originUrl") def origin_url(self) -> _builtins.str: """ - The configured backend type for the distribution + The configured backend type http for the distribution """ return pulumi.get(self, "origin_url") + @_builtins.property + @pulumi.getter + def region(self) -> _builtins.str: + """ + The region where the bucket is hosted. Required if type is 'bucket'. + """ + return pulumi.get(self, "region") + @_builtins.property @pulumi.getter def type(self) -> _builtins.str: """ - The configured backend type. Possible values are: `http`. + The configured backend type. Possible values are: `http`, `bucket`. """ return pulumi.get(self, "type") @@ -7174,19 +7311,22 @@ def __init__(__self__, *, annotations: Mapping[str, _builtins.str], expression: _builtins.str, for_: _builtins.str, - labels: Mapping[str, _builtins.str]): + labels: Mapping[str, _builtins.str], + record: _builtins.str): """ :param _builtins.str alert: The name of the alert rule. Is the identifier and must be unique in the group. :param Mapping[str, _builtins.str] annotations: A map of key:value. Annotations to add or overwrite for each alert :param _builtins.str expression: The PromQL expression to evaluate. Every evaluation cycle this is evaluated at the current time, and all resultant time series become pending/firing alerts. :param _builtins.str for_: Alerts are considered firing once they have been returned for this long. Alerts which have not yet fired for long enough are considered pending. Default is 0s :param Mapping[str, _builtins.str] labels: A map of key:value. Labels to add or overwrite for each alert + :param _builtins.str record: The name of the metric. It's the identifier and must be unique in the group. """ pulumi.set(__self__, "alert", alert) pulumi.set(__self__, "annotations", annotations) pulumi.set(__self__, "expression", expression) pulumi.set(__self__, "for_", for_) pulumi.set(__self__, "labels", labels) + pulumi.set(__self__, "record", record) @_builtins.property @pulumi.getter @@ -7228,6 +7368,14 @@ def labels(self) -> Mapping[str, _builtins.str]: """ return pulumi.get(self, "labels") + @_builtins.property + @pulumi.getter + def record(self) -> _builtins.str: + """ + The name of the metric. It's the identifier and must be unique in the group. + """ + return pulumi.get(self, "record") + @pulumi.output_type class GetObservabilityInstanceAlertConfigResult(dict): @@ -7615,6 +7763,7 @@ def url(self) -> _builtins.str: @pulumi.output_type class GetObservabilityInstanceAlertConfigRouteResult(dict): def __init__(__self__, *, + continue_: _builtins.bool, group_bies: Sequence[_builtins.str], group_interval: _builtins.str, group_wait: _builtins.str, @@ -7622,6 +7771,7 @@ def __init__(__self__, *, repeat_interval: _builtins.str, routes: Sequence['outputs.GetObservabilityInstanceAlertConfigRouteRouteResult']): """ + :param _builtins.bool continue_: Whether an alert should continue matching subsequent sibling nodes. :param Sequence[_builtins.str] group_bies: The labels by which incoming alerts are grouped together. For example, multiple alerts coming in for cluster=A and alertname=LatencyHigh would be batched into a single group. To aggregate by all possible labels use the special value '...' as the sole label name, for example: group_by: ['...']. This effectively disables aggregation entirely, passing through all alerts as-is. This is unlikely to be what you want, unless you have a very low alert volume or your upstream notification system performs its own grouping. :param _builtins.str group_interval: How long to wait before sending a notification about new alerts that are added to a group of alerts for which an initial notification has already been sent. (Usually ~5m or more.) :param _builtins.str group_wait: How long to initially wait to send a notification for a group of alerts. Allows to wait for an inhibiting alert to arrive or collect more initial alerts for the same group. (Usually ~0s to few minutes.) . @@ -7629,6 +7779,7 @@ def __init__(__self__, *, :param _builtins.str repeat_interval: How long to wait before sending a notification again if it has already been sent successfully for an alert. (Usually ~3h or more). :param Sequence['GetObservabilityInstanceAlertConfigRouteRouteArgs'] routes: List of child routes. """ + pulumi.set(__self__, "continue_", continue_) pulumi.set(__self__, "group_bies", group_bies) pulumi.set(__self__, "group_interval", group_interval) pulumi.set(__self__, "group_wait", group_wait) @@ -7636,6 +7787,14 @@ def __init__(__self__, *, pulumi.set(__self__, "repeat_interval", repeat_interval) pulumi.set(__self__, "routes", routes) + @_builtins.property + @pulumi.getter(name="continue") + def continue_(self) -> _builtins.bool: + """ + Whether an alert should continue matching subsequent sibling nodes. + """ + return pulumi.get(self, "continue_") + @_builtins.property @pulumi.getter(name="groupBies") def group_bies(self) -> Sequence[_builtins.str]: diff --git a/sdk/python/pulumi_stackit/postgresflex_instance.py b/sdk/python/pulumi_stackit/postgresflex_instance.py index 139f6bd..61b5811 100644 --- a/sdk/python/pulumi_stackit/postgresflex_instance.py +++ b/sdk/python/pulumi_stackit/postgresflex_instance.py @@ -33,7 +33,9 @@ def __init__(__self__, *, """ The set of arguments for constructing a PostgresflexInstance resource. :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] acls: The Access Control List (ACL) for the PostgresFlex instance. + :param pulumi.Input[_builtins.str] backup_schedule: The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the instance is associated. + :param pulumi.Input[_builtins.int] replicas: How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication. :param pulumi.Input[_builtins.str] name: Instance name. :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. """ @@ -64,6 +66,9 @@ def acls(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]): @_builtins.property @pulumi.getter(name="backupSchedule") def backup_schedule(self) -> pulumi.Input[_builtins.str]: + """ + The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'. + """ return pulumi.get(self, "backup_schedule") @backup_schedule.setter @@ -94,6 +99,9 @@ def project_id(self, value: pulumi.Input[_builtins.str]): @_builtins.property @pulumi.getter def replicas(self) -> pulumi.Input[_builtins.int]: + """ + How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication. + """ return pulumi.get(self, "replicas") @replicas.setter @@ -159,10 +167,12 @@ def __init__(__self__, *, """ Input properties used for looking up and filtering PostgresflexInstance resources. :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] acls: The Access Control List (ACL) for the PostgresFlex instance. + :param pulumi.Input[_builtins.str] backup_schedule: The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'. :param pulumi.Input[_builtins.str] instance_id: ID of the PostgresFlex instance. :param pulumi.Input[_builtins.str] name: Instance name. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the instance is associated. :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + :param pulumi.Input[_builtins.int] replicas: How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication. """ if acls is not None: pulumi.set(__self__, "acls", acls) @@ -200,6 +210,9 @@ def acls(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str] @_builtins.property @pulumi.getter(name="backupSchedule") def backup_schedule(self) -> Optional[pulumi.Input[_builtins.str]]: + """ + The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'. + """ return pulumi.get(self, "backup_schedule") @backup_schedule.setter @@ -266,6 +279,9 @@ def region(self, value: Optional[pulumi.Input[_builtins.str]]): @_builtins.property @pulumi.getter def replicas(self) -> Optional[pulumi.Input[_builtins.int]]: + """ + How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication. + """ return pulumi.get(self, "replicas") @replicas.setter @@ -315,9 +331,11 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] acls: The Access Control List (ACL) for the PostgresFlex instance. + :param pulumi.Input[_builtins.str] backup_schedule: The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'. :param pulumi.Input[_builtins.str] name: Instance name. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the instance is associated. :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + :param pulumi.Input[_builtins.int] replicas: How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication. """ ... @overload @@ -415,10 +433,12 @@ def get(resource_name: str, :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] acls: The Access Control List (ACL) for the PostgresFlex instance. + :param pulumi.Input[_builtins.str] backup_schedule: The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'. :param pulumi.Input[_builtins.str] instance_id: ID of the PostgresFlex instance. :param pulumi.Input[_builtins.str] name: Instance name. :param pulumi.Input[_builtins.str] project_id: STACKIT project ID to which the instance is associated. :param pulumi.Input[_builtins.str] region: The resource region. If not defined, the provider region is used. + :param pulumi.Input[_builtins.int] replicas: How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -447,6 +467,9 @@ def acls(self) -> pulumi.Output[Sequence[_builtins.str]]: @_builtins.property @pulumi.getter(name="backupSchedule") def backup_schedule(self) -> pulumi.Output[_builtins.str]: + """ + The schedule for on what time and how often the database backup will be created. Must be a valid cron expression using numeric minute and hour values, e.g: '0 2 * * *'. + """ return pulumi.get(self, "backup_schedule") @_builtins.property @@ -489,6 +512,9 @@ def region(self) -> pulumi.Output[_builtins.str]: @_builtins.property @pulumi.getter def replicas(self) -> pulumi.Output[_builtins.int]: + """ + How many replicas the instance should have. Valid values are 1 for single mode or 3 for replication. + """ return pulumi.get(self, "replicas") @_builtins.property