diff --git a/Resources/AppIcon.icon/Assets/noun-activity-680031.svg b/Resources/AppIcon.icon/Assets/noun-activity-680031.svg
new file mode 100644
index 0000000..5c9fae3
--- /dev/null
+++ b/Resources/AppIcon.icon/Assets/noun-activity-680031.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Resources/AppIcon.icon/icon.json b/Resources/AppIcon.icon/icon.json
new file mode 100644
index 0000000..db28a47
--- /dev/null
+++ b/Resources/AppIcon.icon/icon.json
@@ -0,0 +1,67 @@
+{
+ "fill" : {
+ "linear-gradient" : [
+ "display-p3:0.27726,0.27726,0.27726,1.00000",
+ "display-p3:0.18033,0.18033,0.18033,1.00000"
+ ]
+ },
+ "groups" : [
+ {
+ "blend-mode" : "normal",
+ "blur-material" : null,
+ "hidden" : false,
+ "layers" : [
+ {
+ "blend-mode" : "normal",
+ "fill-specializations" : [
+ {
+ "value" : {
+ "linear-gradient" : [
+ "display-p3:0.99663,0.99663,0.99663,1.00000",
+ "display-p3:0.89697,0.89697,0.89697,1.00000"
+ ]
+ }
+ },
+ {
+ "appearance" : "dark",
+ "value" : {
+ "linear-gradient" : [
+ "display-p3:0.99663,0.99663,0.99663,1.00000",
+ "display-p3:0.89697,0.89697,0.89697,1.00000"
+ ]
+ }
+ }
+ ],
+ "glass" : true,
+ "hidden" : false,
+ "image-name" : "noun-activity-680031.svg",
+ "name" : "noun-activity-680031",
+ "opacity" : 0.9,
+ "position" : {
+ "scale" : 6,
+ "translation-in-points" : [
+ 30,
+ 90
+ ]
+ }
+ }
+ ],
+ "lighting" : "individual",
+ "shadow" : {
+ "kind" : "neutral",
+ "opacity" : 0.5
+ },
+ "specular" : false,
+ "translucency" : {
+ "enabled" : false,
+ "value" : 0.5
+ }
+ }
+ ],
+ "supported-platforms" : {
+ "circles" : [
+ "watchOS"
+ ],
+ "squares" : "shared"
+ }
+}
\ No newline at end of file
diff --git a/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json b/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index 7d3169e..0000000
--- a/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "images" : [
- {
- "size" : "16x16",
- "idiom" : "mac",
- "filename" : "Icon_16x16.png",
- "scale" : "1x"
- },
- {
- "size" : "16x16",
- "idiom" : "mac",
- "filename" : "Icon_32x32-1.png",
- "scale" : "2x"
- },
- {
- "size" : "32x32",
- "idiom" : "mac",
- "filename" : "Icon_32x32.png",
- "scale" : "1x"
- },
- {
- "size" : "32x32",
- "idiom" : "mac",
- "filename" : "Icon_32x32@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "128x128",
- "idiom" : "mac",
- "filename" : "Icon_128x128.png",
- "scale" : "1x"
- },
- {
- "size" : "128x128",
- "idiom" : "mac",
- "filename" : "Icon_256x256.png",
- "scale" : "2x"
- },
- {
- "size" : "256x256",
- "idiom" : "mac",
- "filename" : "Icon_256x256-2.png",
- "scale" : "1x"
- },
- {
- "size" : "256x256",
- "idiom" : "mac",
- "filename" : "Icon_512x512.png",
- "scale" : "2x"
- },
- {
- "size" : "512x512",
- "idiom" : "mac",
- "filename" : "Icon_512x512-1.png",
- "scale" : "1x"
- },
- {
- "size" : "512x512",
- "idiom" : "mac",
- "filename" : "icon_512x512@2x.png",
- "scale" : "2x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/Resources/Assets.xcassets/AppIcon.appiconset/Icon_128x128.png b/Resources/Assets.xcassets/AppIcon.appiconset/Icon_128x128.png
deleted file mode 100644
index c60f089..0000000
Binary files a/Resources/Assets.xcassets/AppIcon.appiconset/Icon_128x128.png and /dev/null differ
diff --git a/Resources/Assets.xcassets/AppIcon.appiconset/Icon_16x16.png b/Resources/Assets.xcassets/AppIcon.appiconset/Icon_16x16.png
deleted file mode 100644
index cc2cc84..0000000
Binary files a/Resources/Assets.xcassets/AppIcon.appiconset/Icon_16x16.png and /dev/null differ
diff --git a/Resources/Assets.xcassets/AppIcon.appiconset/Icon_256x256-2.png b/Resources/Assets.xcassets/AppIcon.appiconset/Icon_256x256-2.png
deleted file mode 100644
index 93efbdb..0000000
Binary files a/Resources/Assets.xcassets/AppIcon.appiconset/Icon_256x256-2.png and /dev/null differ
diff --git a/Resources/Assets.xcassets/AppIcon.appiconset/Icon_256x256.png b/Resources/Assets.xcassets/AppIcon.appiconset/Icon_256x256.png
deleted file mode 100644
index 93efbdb..0000000
Binary files a/Resources/Assets.xcassets/AppIcon.appiconset/Icon_256x256.png and /dev/null differ
diff --git a/Resources/Assets.xcassets/AppIcon.appiconset/Icon_32x32-1.png b/Resources/Assets.xcassets/AppIcon.appiconset/Icon_32x32-1.png
deleted file mode 100644
index 3f45dae..0000000
Binary files a/Resources/Assets.xcassets/AppIcon.appiconset/Icon_32x32-1.png and /dev/null differ
diff --git a/Resources/Assets.xcassets/AppIcon.appiconset/Icon_32x32.png b/Resources/Assets.xcassets/AppIcon.appiconset/Icon_32x32.png
deleted file mode 100644
index 3f45dae..0000000
Binary files a/Resources/Assets.xcassets/AppIcon.appiconset/Icon_32x32.png and /dev/null differ
diff --git a/Resources/Assets.xcassets/AppIcon.appiconset/Icon_32x32@2x.png b/Resources/Assets.xcassets/AppIcon.appiconset/Icon_32x32@2x.png
deleted file mode 100644
index 88bc0b5..0000000
Binary files a/Resources/Assets.xcassets/AppIcon.appiconset/Icon_32x32@2x.png and /dev/null differ
diff --git a/Resources/Assets.xcassets/AppIcon.appiconset/Icon_512x512-1.png b/Resources/Assets.xcassets/AppIcon.appiconset/Icon_512x512-1.png
deleted file mode 100644
index e22dd6e..0000000
Binary files a/Resources/Assets.xcassets/AppIcon.appiconset/Icon_512x512-1.png and /dev/null differ
diff --git a/Resources/Assets.xcassets/AppIcon.appiconset/Icon_512x512.png b/Resources/Assets.xcassets/AppIcon.appiconset/Icon_512x512.png
deleted file mode 100644
index e22dd6e..0000000
Binary files a/Resources/Assets.xcassets/AppIcon.appiconset/Icon_512x512.png and /dev/null differ
diff --git a/Resources/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png b/Resources/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png
deleted file mode 100644
index 9734b55..0000000
Binary files a/Resources/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png and /dev/null differ
diff --git a/Resources/Assets.xcassets/Contents.json b/Resources/Assets.xcassets/Contents.json
new file mode 100644
index 0000000..73c0059
--- /dev/null
+++ b/Resources/Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Info.plist b/Resources/Info.plist
index 707edcb..b9be0a1 100644
--- a/Resources/Info.plist
+++ b/Resources/Info.plist
@@ -7,7 +7,7 @@
CFBundleExecutable
$(EXECUTABLE_NAME)
CFBundleIconFile
-
+ AppIcon.icon
CFBundleIdentifier
$(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleInfoDictionaryVersion
diff --git a/stts.xcodeproj/project.pbxproj b/stts.xcodeproj/project.pbxproj
index 398757c..9f88391 100644
--- a/stts.xcodeproj/project.pbxproj
+++ b/stts.xcodeproj/project.pbxproj
@@ -83,7 +83,6 @@
B210189C249E406D00F31999 /* RevenueCat.swift in Sources */ = {isa = PBXBuildFile; fileRef = B210189B249E406D00F31999 /* RevenueCat.swift */; };
B2107BCE254C970000284EE7 /* Linode.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2107BCC254C96FF00284EE7 /* Linode.swift */; };
B2107BCF254C970000284EE7 /* Notion.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2107BCD254C970000284EE7 /* Notion.swift */; };
- B211F0B81E607C09008DD360 /* Rollbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = B211F0B71E607C09008DD360 /* Rollbar.swift */; };
B213A1771DC97E2B008E8E58 /* ServiceTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B213A1761DC97E2B008E8E58 /* ServiceTableViewController.swift */; };
B213A1791DC9EA25008E8E58 /* ServiceTableRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B213A1781DC9EA25008E8E58 /* ServiceTableRowView.swift */; };
B213D1F8269AD9A7005EBDDA /* Pardot.swift in Sources */ = {isa = PBXBuildFile; fileRef = B213D1F7269AD9A7005EBDDA /* Pardot.swift */; };
@@ -94,6 +93,7 @@
B213D207269B05D9005EBDDA /* Instatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = B213D206269B05D9005EBDDA /* Instatus.swift */; };
B213D209269B06DD005EBDDA /* Threader.swift in Sources */ = {isa = PBXBuildFile; fileRef = B213D208269B06DD005EBDDA /* Threader.swift */; };
B213D20B269B0774005EBDDA /* Sketch.swift in Sources */ = {isa = PBXBuildFile; fileRef = B213D20A269B0774005EBDDA /* Sketch.swift */; };
+ B214B6062E7BC13A006B3B77 /* AppIcon.icon in Resources */ = {isa = PBXBuildFile; fileRef = B214B6052E7BC13A006B3B77 /* AppIcon.icon */; };
B2163AF820BA4E7500B14A85 /* sttsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2163AF720BA4E7500B14A85 /* sttsTests.swift */; };
B2163B0020BA56EF00B14A85 /* StatusCakeService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2163AFF20BA56EF00B14A85 /* StatusCakeService.swift */; };
B219C0DA1E2F0E9F001F8E7F /* CocoaPods.swift in Sources */ = {isa = PBXBuildFile; fileRef = B219C0D91E2F0E9F001F8E7F /* CocoaPods.swift */; };
@@ -143,7 +143,7 @@
B231DD60257B438900647312 /* HubSpot.swift in Sources */ = {isa = PBXBuildFile; fileRef = B231DD5F257B438900647312 /* HubSpot.swift */; };
B232047F22158BDF000DC1B0 /* DatadogEU.swift in Sources */ = {isa = PBXBuildFile; fileRef = B232047E22158BDF000DC1B0 /* DatadogEU.swift */; };
B232A18D20944B960066AD01 /* Cloud66.swift in Sources */ = {isa = PBXBuildFile; fileRef = B232A18C20944B950066AD01 /* Cloud66.swift */; };
- B235341F22888EFE00DEDC36 /* Sendinblue.swift in Sources */ = {isa = PBXBuildFile; fileRef = B235341E22888EFE00DEDC36 /* Sendinblue.swift */; };
+ B235341F22888EFE00DEDC36 /* Brevo.swift in Sources */ = {isa = PBXBuildFile; fileRef = B235341E22888EFE00DEDC36 /* Brevo.swift */; };
B235B3BD1DF562C400821936 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B235B3BC1DF562C400821936 /* SettingsView.swift */; };
B23646B12627C14E00AB9486 /* LogzIO.swift in Sources */ = {isa = PBXBuildFile; fileRef = B23646AF2627C14E00AB9486 /* LogzIO.swift */; };
B23646B22627C14E00AB9486 /* VisualStudioAppCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B23646B02627C14E00AB9486 /* VisualStudioAppCenter.swift */; };
@@ -237,6 +237,7 @@
B299C8511DD04FD60024D2E9 /* Cloudflare.swift in Sources */ = {isa = PBXBuildFile; fileRef = B299C8501DD04FD60024D2E9 /* Cloudflare.swift */; };
B299C8531DD0505F0024D2E9 /* Sentry.swift in Sources */ = {isa = PBXBuildFile; fileRef = B299C8521DD0505F0024D2E9 /* Sentry.swift */; };
B299C8551DD051210024D2E9 /* EngineYard.swift in Sources */ = {isa = PBXBuildFile; fileRef = B299C8541DD051210024D2E9 /* EngineYard.swift */; };
+ B29A44FB2E52B4C000A1DF8A /* Rollbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = B29A44FA2E52B4BD00A1DF8A /* Rollbar.swift */; };
B29AEFD0225D7F3900C3B8BD /* AirshipUS.swift in Sources */ = {isa = PBXBuildFile; fileRef = B29AEFCF225D7F3900C3B8BD /* AirshipUS.swift */; };
B29D50BD24B053C600F4961B /* Basecamp.swift in Sources */ = {isa = PBXBuildFile; fileRef = B29D50BC24B053C600F4961B /* Basecamp.swift */; };
B29D50BF24B0542100F4961B /* PlatformSH.swift in Sources */ = {isa = PBXBuildFile; fileRef = B29D50BE24B0542100F4961B /* PlatformSH.swift */; };
@@ -325,7 +326,6 @@
B2FBDF5D2A14E3C600734667 /* InternetComputer.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2FBDF5C2A14E3C600734667 /* InternetComputer.swift */; };
B2FBDF5F2A35D82000734667 /* IncidentIOService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2FBDF5E2A35D82000734667 /* IncidentIOService.swift */; };
B2FBDF622A35E1C800734667 /* Loom.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2FBDF612A35E1C800734667 /* Loom.swift */; };
- B2FDC91A1D67029900F0B728 /* Heroku.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2FDC9191D67029900F0B728 /* Heroku.swift */; };
B2FDC91C1D67062200F0B728 /* StatusPageService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2FDC91B1D67062200F0B728 /* StatusPageService.swift */; };
B2FDC91E1D6706C400F0B728 /* CircleCI.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2FDC91D1D6706C400F0B728 /* CircleCI.swift */; };
B2FFC1F01E261B4A00529A00 /* Dropbox.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2FFC1EF1E261B4A00529A00 /* Dropbox.swift */; };
@@ -458,7 +458,6 @@
B210189B249E406D00F31999 /* RevenueCat.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RevenueCat.swift; sourceTree = ""; };
B2107BCC254C96FF00284EE7 /* Linode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Linode.swift; sourceTree = ""; };
B2107BCD254C970000284EE7 /* Notion.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Notion.swift; sourceTree = ""; };
- B211F0B71E607C09008DD360 /* Rollbar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Rollbar.swift; sourceTree = ""; };
B213A1761DC97E2B008E8E58 /* ServiceTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServiceTableViewController.swift; sourceTree = ""; };
B213A1781DC9EA25008E8E58 /* ServiceTableRowView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServiceTableRowView.swift; sourceTree = ""; };
B213D1F7269AD9A7005EBDDA /* Pardot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Pardot.swift; sourceTree = ""; };
@@ -469,6 +468,7 @@
B213D206269B05D9005EBDDA /* Instatus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Instatus.swift; sourceTree = ""; };
B213D208269B06DD005EBDDA /* Threader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Threader.swift; sourceTree = ""; };
B213D20A269B0774005EBDDA /* Sketch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Sketch.swift; sourceTree = ""; };
+ B214B6052E7BC13A006B3B77 /* AppIcon.icon */ = {isa = PBXFileReference; lastKnownFileType = folder.iconcomposer.icon; path = AppIcon.icon; sourceTree = ""; };
B2163AF520BA4E7500B14A85 /* sttsTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = sttsTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
B2163AF720BA4E7500B14A85 /* sttsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = sttsTests.swift; sourceTree = ""; };
B2163AF920BA4E7500B14A85 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
@@ -520,7 +520,7 @@
B231DD5F257B438900647312 /* HubSpot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HubSpot.swift; sourceTree = ""; };
B232047E22158BDF000DC1B0 /* DatadogEU.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatadogEU.swift; sourceTree = ""; };
B232A18C20944B950066AD01 /* Cloud66.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Cloud66.swift; sourceTree = ""; };
- B235341E22888EFE00DEDC36 /* Sendinblue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Sendinblue.swift; sourceTree = ""; };
+ B235341E22888EFE00DEDC36 /* Brevo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Brevo.swift; sourceTree = ""; };
B235B3BC1DF562C400821936 /* SettingsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; };
B23646AF2627C14E00AB9486 /* LogzIO.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LogzIO.swift; sourceTree = ""; };
B23646B02627C14E00AB9486 /* VisualStudioAppCenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VisualStudioAppCenter.swift; sourceTree = ""; };
@@ -618,6 +618,7 @@
B299C8501DD04FD60024D2E9 /* Cloudflare.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Cloudflare.swift; sourceTree = ""; };
B299C8521DD0505F0024D2E9 /* Sentry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Sentry.swift; sourceTree = ""; };
B299C8541DD051210024D2E9 /* EngineYard.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EngineYard.swift; sourceTree = ""; };
+ B29A44FA2E52B4BD00A1DF8A /* Rollbar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Rollbar.swift; sourceTree = ""; };
B29AEFCF225D7F3900C3B8BD /* AirshipUS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AirshipUS.swift; sourceTree = ""; };
B29D50BC24B053C600F4961B /* Basecamp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Basecamp.swift; sourceTree = ""; };
B29D50BE24B0542100F4961B /* PlatformSH.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlatformSH.swift; sourceTree = ""; };
@@ -711,7 +712,6 @@
B2FBDF5C2A14E3C600734667 /* InternetComputer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InternetComputer.swift; sourceTree = ""; };
B2FBDF5E2A35D82000734667 /* IncidentIOService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IncidentIOService.swift; sourceTree = ""; };
B2FBDF612A35E1C800734667 /* Loom.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Loom.swift; sourceTree = ""; };
- B2FDC9191D67029900F0B728 /* Heroku.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Heroku.swift; sourceTree = ""; };
B2FDC91B1D67062200F0B728 /* StatusPageService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StatusPageService.swift; sourceTree = ""; };
B2FDC91D1D6706C400F0B728 /* CircleCI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CircleCI.swift; sourceTree = ""; };
B2FFC1EF1E261B4A00529A00 /* Dropbox.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Dropbox.swift; sourceTree = ""; };
@@ -928,7 +928,6 @@
B2C5ED1C281CAA3400009B68 /* OneLoginEU.swift */,
B2C5ED1A281CA96200009B68 /* OneLoginUS.swift */,
B25ACB63289E01700014C95C /* Roblox.swift */,
- B235341E22888EFE00DEDC36 /* Sendinblue.swift */,
D6B730B6BF88700B5DC9212E /* SumoLogic.swift */,
);
path = Status.ioV1;
@@ -1044,7 +1043,6 @@
B227D30B25D5886B00951917 /* FreeAgent.swift */,
B2C10F3B203646A7008E1E7D /* Gandi.swift */,
B254642221EE9AF6003068A4 /* GitHub.swift */,
- 87DE85B45D490EF40F319860 /* HashiCorp.swift */,
881BD2B4F6BC008A1CE1A25B /* HelloSignHelloFax.swift */,
B231DD5F257B438900647312 /* HubSpot.swift */,
B2ABB6161F59770800DF8EC2 /* Imgix.swift */,
@@ -1069,6 +1067,7 @@
B28E9FBE1ED26A40006B89F1 /* Lob.swift */,
B26350FC1ED7CFC40069EA73 /* Loggly.swift */,
B23646AF2627C14E00AB9486 /* LogzIO.swift */,
+ B2FBDF612A35E1C800734667 /* Loom.swift */,
A133C8B620F8F3670068CFE8 /* Mailgun.swift */,
B28C1D431E607D8600F9D0DC /* Mapbox.swift */,
6B24BCA673F692E9211E7B8D /* Medium.swift */,
@@ -1084,7 +1083,6 @@
B299C8421DD044160024D2E9 /* NewRelic.swift */,
B2107BCD254C970000284EE7 /* Notion.swift */,
B22BB3A0223B341B00B43BED /* OnePassword.swift */,
- 0BDEA739C3989EA43886F0F6 /* OneSignal.swift */,
3F6D6DE9B7048DB851580651 /* Opsgenie.swift */,
B24B573123A4EAD200AFCF01 /* Pantheon.swift */,
B2BA697F1E2DA3F60016AF1A /* Papertrail.swift */,
@@ -1108,7 +1106,6 @@
95E87BF974F75C95D80FC426 /* Roadmunk.swift */,
F3859428AAF182EC79C4ED3E /* Robin.swift */,
B20699D1214E504E008670B0 /* Robinhood.swift */,
- B211F0B71E607C09008DD360 /* Rollbar.swift */,
B299C8481DD04DCB0024D2E9 /* RubyGems.swift */,
B25695551E247C8C00FAE413 /* SauceLabs.swift */,
71284C408241E2CE20F2330D /* Scaleway.swift */,
@@ -1282,13 +1279,16 @@
isa = PBXGroup;
children = (
AFB41ECF9F0F03EC8916A646 /* Aiven.swift */,
+ B235341E22888EFE00DEDC36 /* Brevo.swift */,
+ 87DE85B45D490EF40F319860 /* HashiCorp.swift */,
B241B0752CC551D400D122B3 /* IntercomAU.swift */,
B241B0732CC551C300D122B3 /* IntercomEU.swift */,
B241B0712CC5518100D122B3 /* IntercomUS.swift */,
B213D204269B0496005EBDDA /* Linear.swift */,
- B2FBDF612A35E1C800734667 /* Loom.swift */,
1CCCFA4ECD8BB402C7254FEF /* Miro.swift */,
+ 0BDEA739C3989EA43886F0F6 /* OneSignal.swift */,
B2E832EF29EF74D9000FA1BE /* OpenAI.swift */,
+ B29A44FA2E52B4BD00A1DF8A /* Rollbar.swift */,
);
path = IncidentIO;
sourceTree = "";
@@ -1324,7 +1324,6 @@
B290315B1E4B0CA7005B58CC /* Evernote.swift */,
B2253A6E209F42430039F574 /* Firebase.swift */,
B2E70FDA22B07DBC000BCAD2 /* GoogleCloudPlatformAll.swift */,
- B2FDC9191D67029900F0B728 /* Heroku.swift */,
B276D7692C41F93300974DB6 /* Okta.swift */,
B22602B027D881AF001190F1 /* OracleNetSuite.swift */,
B2228B6126C9623C002F01F0 /* SendbirdAll.swift */,
@@ -1386,6 +1385,7 @@
B2FDC9211D67074900F0B728 /* Resources */ = {
isa = PBXGroup;
children = (
+ B214B6052E7BC13A006B3B77 /* AppIcon.icon */,
B2B2D1041D49D5080014D780 /* Assets.xcassets */,
B2B2D1091D49D5080014D780 /* Info.plist */,
B2B2D1061D49D5080014D780 /* MainMenu.xib */,
@@ -1449,7 +1449,7 @@
attributes = {
BuildIndependentTargetsInParallel = YES;
LastSwiftUpdateCheck = 0930;
- LastUpgradeCheck = 1540;
+ LastUpgradeCheck = 2600;
ORGANIZATIONNAME = inket;
TargetAttributes = {
B2163AF420BA4E7500B14A85 = {
@@ -1481,7 +1481,7 @@
packageReferences = (
B20883E32A59143E007578C8 /* XCRemoteSwiftPackageReference "MBPopup" */,
B20883E62A59144F007578C8 /* XCRemoteSwiftPackageReference "Kanna" */,
- B20883E92A59146C007578C8 /* XCRemoteSwiftPackageReference "Reachability.swift" */,
+ B20883E92A59146C007578C8 /* XCRemoteSwiftPackageReference "Reachability" */,
);
productRefGroup = B2B2D1001D49D5080014D780 /* Products */;
projectDirPath = "";
@@ -1514,6 +1514,7 @@
files = (
B2B2D1051D49D5080014D780 /* Assets.xcassets in Resources */,
B2B2D1081D49D5080014D780 /* MainMenu.xib in Resources */,
+ B214B6062E7BC13A006B3B77 /* AppIcon.icon in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1608,14 +1609,12 @@
buildActionMask = 2147483647;
files = (
B2228B5E26C95CF5002F01F0 /* SendbirdServices.swift in Sources */,
- B211F0B81E607C09008DD360 /* Rollbar.swift in Sources */,
B2493F061E2603F300556A83 /* GoogleCloudPlatform.swift in Sources */,
36AD8ED7235A2F9B00F2FD73 /* VictorOps.swift in Sources */,
B299C8491DD04DCB0024D2E9 /* RubyGems.swift in Sources */,
B299C8531DD0505F0024D2E9 /* Sentry.swift in Sources */,
B24EE10226C8BFD500F7CE8B /* Salesforce.swift in Sources */,
B2EB51D01E700517001D6F78 /* Codacy.swift in Sources */,
- B2FDC91A1D67029900F0B728 /* Heroku.swift in Sources */,
B2A4D7E7247E72B50089EA77 /* AzureAll.swift in Sources */,
B2253A6B209F3C410039F574 /* GoogleStatusDashboardStore.swift in Sources */,
B2AF06AE2A7AB97300448D1E /* Booxi.swift in Sources */,
@@ -1660,6 +1659,7 @@
B2ABB6171F59770800DF8EC2 /* Imgix.swift in Sources */,
B213D1F8269AD9A7005EBDDA /* Pardot.swift in Sources */,
B22BA3021E8119AB0038D8F6 /* Discord.swift in Sources */,
+ B29A44FB2E52B4C000A1DF8A /* Rollbar.swift in Sources */,
B2B015C21DBDE69B00699211 /* StatusTableCell.swift in Sources */,
B271688A2291AEEE001E608C /* Asana.swift in Sources */,
B2FBDF622A35E1C800734667 /* Loom.swift in Sources */,
@@ -1673,7 +1673,7 @@
B2CEE5D922B49CC80073C743 /* AzureStore.swift in Sources */,
B2D032D01D6455E300D51CB8 /* TravisCI.swift in Sources */,
B213D200269AFD45005EBDDA /* InstatusService.swift in Sources */,
- B235341F22888EFE00DEDC36 /* Sendinblue.swift in Sources */,
+ B235341F22888EFE00DEDC36 /* Brevo.swift in Sources */,
B2D468291E2F0F82000F8F6B /* Coveralls.swift in Sources */,
B299C8511DD04FD60024D2E9 /* Cloudflare.swift in Sources */,
B200CA76247FC88700DB0868 /* Adobe.swift in Sources */,
@@ -1971,7 +1971,6 @@
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
- DEVELOPMENT_TEAM = PP5UYHJQCD;
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = sttsTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
@@ -2000,7 +1999,6 @@
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
- DEVELOPMENT_TEAM = PP5UYHJQCD;
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = sttsTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
@@ -2052,6 +2050,7 @@
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
+ DEVELOPMENT_TEAM = PP5UYHJQCD;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
@@ -2076,6 +2075,7 @@
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
+ STRING_CATALOG_GENERATE_SYMBOLS = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
@@ -2116,6 +2116,7 @@
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ DEVELOPMENT_TEAM = PP5UYHJQCD;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
@@ -2133,6 +2134,7 @@
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
+ STRING_CATALOG_GENERATE_SYMBOLS = YES;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
};
@@ -2147,14 +2149,15 @@
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- CURRENT_PROJECT_VERSION = 80;
+ CURRENT_PROJECT_VERSION = 81;
DEAD_CODE_STRIPPING = YES;
- DEVELOPMENT_TEAM = PP5UYHJQCD;
+ ENABLE_APP_SANDBOX = YES;
ENABLE_HARDENED_RUNTIME = YES;
+ ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES;
INFOPLIST_FILE = Resources/Info.plist;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools";
- MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
- MARKETING_VERSION = 2.24;
+ MACOSX_DEPLOYMENT_TARGET = 11.0;
+ MARKETING_VERSION = 3.0;
OTHER_SWIFT_FLAGS = "-Xfrontend -warn-long-function-bodies=300 -Xfrontend -warn-long-expression-type-checking=200";
PRODUCT_BUNDLE_IDENTIFIER = jp.mahdi.stts;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -2172,14 +2175,15 @@
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- CURRENT_PROJECT_VERSION = 80;
+ CURRENT_PROJECT_VERSION = 81;
DEAD_CODE_STRIPPING = YES;
- DEVELOPMENT_TEAM = PP5UYHJQCD;
+ ENABLE_APP_SANDBOX = YES;
ENABLE_HARDENED_RUNTIME = YES;
+ ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES;
INFOPLIST_FILE = Resources/Info.plist;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools";
- MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
- MARKETING_VERSION = 2.24;
+ MACOSX_DEPLOYMENT_TARGET = 11.0;
+ MARKETING_VERSION = 3.0;
OTHER_SWIFT_FLAGS = "-Xfrontend -warn-long-function-bodies=300 -Xfrontend -warn-long-expression-type-checking=200";
PRODUCT_BUNDLE_IDENTIFIER = jp.mahdi.stts;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -2237,7 +2241,7 @@
minimumVersion = 5.0.0;
};
};
- B20883E92A59146C007578C8 /* XCRemoteSwiftPackageReference "Reachability.swift" */ = {
+ B20883E92A59146C007578C8 /* XCRemoteSwiftPackageReference "Reachability" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/ashleymills/Reachability.swift";
requirement = {
@@ -2260,7 +2264,7 @@
};
B20883EA2A59146C007578C8 /* Reachability */ = {
isa = XCSwiftPackageProductDependency;
- package = B20883E92A59146C007578C8 /* XCRemoteSwiftPackageReference "Reachability.swift" */;
+ package = B20883E92A59146C007578C8 /* XCRemoteSwiftPackageReference "Reachability" */;
productName = Reachability;
};
/* End XCSwiftPackageProductDependency section */
diff --git a/stts.xcodeproj/xcshareddata/xcschemes/stts.xcscheme b/stts.xcodeproj/xcshareddata/xcschemes/stts.xcscheme
index d78edbe..2099cb0 100644
--- a/stts.xcodeproj/xcshareddata/xcschemes/stts.xcscheme
+++ b/stts.xcodeproj/xcshareddata/xcschemes/stts.xcscheme
@@ -1,6 +1,6 @@
([
"appconfig-af-south-1",
"appconfig-ap-east-1",
+ "appconfig-ap-east-2",
"appconfig-ap-northeast-1",
"appconfig-ap-northeast-2",
"appconfig-ap-northeast-3",
@@ -323,6 +334,7 @@ final class AWSAppConfig: AWSNamedService, SubService {
"appconfig-ap-southeast-3",
"appconfig-ap-southeast-4",
"appconfig-ap-southeast-5",
+ "appconfig-ap-southeast-6",
"appconfig-ap-southeast-7",
"appconfig-ca-central-1",
"appconfig-ca-west-1",
@@ -371,7 +383,10 @@ final class AWSAppSync: AWSNamedService, SubService {
"appsync-ap-southeast-2",
"appsync-ap-southeast-3",
"appsync-ap-southeast-4",
+ "appsync-ap-southeast-5",
+ "appsync-ap-southeast-7",
"appsync-ca-central-1",
+ "appsync-ca-west-1",
"appsync-eu-central-1",
"appsync-eu-central-2",
"appsync-eu-north-1",
@@ -418,6 +433,8 @@ final class AWSApplicationMigrationService: AWSNamedService, SubService {
"mgn-ap-southeast-2",
"mgn-ap-southeast-3",
"mgn-ap-southeast-4",
+ "mgn-ap-southeast-5",
+ "mgn-ap-southeast-7",
"mgn-ca-central-1",
"mgn-eu-central-1",
"mgn-eu-central-2",
@@ -463,6 +480,7 @@ final class AWSAutoScaling: AWSNamedService, SubService {
let ids = Set([
"autoscaling-af-south-1",
"autoscaling-ap-east-1",
+ "autoscaling-ap-east-2",
"autoscaling-ap-northeast-1",
"autoscaling-ap-northeast-2",
"autoscaling-ap-northeast-3",
@@ -473,6 +491,7 @@ final class AWSAutoScaling: AWSNamedService, SubService {
"autoscaling-ap-southeast-3",
"autoscaling-ap-southeast-4",
"autoscaling-ap-southeast-5",
+ "autoscaling-ap-southeast-6",
"autoscaling-ap-southeast-7",
"autoscaling-ca-central-1",
"autoscaling-ca-west-1",
@@ -512,6 +531,7 @@ final class AWSBackup: AWSNamedService, SubService {
let ids = Set([
"backup-af-south-1",
"backup-ap-east-1",
+ "backup-ap-east-2",
"backup-ap-northeast-1",
"backup-ap-northeast-2",
"backup-ap-northeast-3",
@@ -552,6 +572,7 @@ final class AWSBatch: AWSNamedService, SubService {
let ids = Set([
"batch-af-south-1",
"batch-ap-east-1",
+ "batch-ap-east-2",
"batch-ap-northeast-1",
"batch-ap-northeast-2",
"batch-ap-northeast-3",
@@ -562,6 +583,7 @@ final class AWSBatch: AWSNamedService, SubService {
"batch-ap-southeast-3",
"batch-ap-southeast-4",
"batch-ap-southeast-5",
+ "batch-ap-southeast-6",
"batch-ap-southeast-7",
"batch-ca-central-1",
"batch-ca-west-1",
@@ -599,6 +621,7 @@ final class AWSCertificateManager: AWSNamedService, SubService {
let ids = Set([
"certificatemanager-af-south-1",
"certificatemanager-ap-east-1",
+ "certificatemanager-ap-east-2",
"certificatemanager-ap-northeast-1",
"certificatemanager-ap-northeast-2",
"certificatemanager-ap-northeast-3",
@@ -609,6 +632,7 @@ final class AWSCertificateManager: AWSNamedService, SubService {
"certificatemanager-ap-southeast-3",
"certificatemanager-ap-southeast-4",
"certificatemanager-ap-southeast-5",
+ "certificatemanager-ap-southeast-6",
"certificatemanager-ap-southeast-7",
"certificatemanager-ca-central-1",
"certificatemanager-ca-west-1",
@@ -672,6 +696,8 @@ final class AWSClientVPN: AWSNamedService, SubService {
"clientvpn-ap-southeast-2",
"clientvpn-ap-southeast-3",
"clientvpn-ap-southeast-4",
+ "clientvpn-ap-southeast-5",
+ "clientvpn-ap-southeast-7",
"clientvpn-ca-central-1",
"clientvpn-eu-central-1",
"clientvpn-eu-central-2",
@@ -699,6 +725,7 @@ final class AWSCloudMap: AWSNamedService, SubService {
let ids = Set([
"servicediscovery-af-south-1",
"servicediscovery-ap-east-1",
+ "servicediscovery-ap-east-2",
"servicediscovery-ap-northeast-1",
"servicediscovery-ap-northeast-2",
"servicediscovery-ap-northeast-3",
@@ -709,6 +736,7 @@ final class AWSCloudMap: AWSNamedService, SubService {
"servicediscovery-ap-southeast-3",
"servicediscovery-ap-southeast-4",
"servicediscovery-ap-southeast-5",
+ "servicediscovery-ap-southeast-6",
"servicediscovery-ap-southeast-7",
"servicediscovery-ca-central-1",
"servicediscovery-ca-west-1",
@@ -774,6 +802,7 @@ final class AWSCloudFormation: AWSNamedService, SubService {
let ids = Set([
"cloudformation-af-south-1",
"cloudformation-ap-east-1",
+ "cloudformation-ap-east-2",
"cloudformation-ap-northeast-1",
"cloudformation-ap-northeast-2",
"cloudformation-ap-northeast-3",
@@ -784,6 +813,7 @@ final class AWSCloudFormation: AWSNamedService, SubService {
"cloudformation-ap-southeast-3",
"cloudformation-ap-southeast-4",
"cloudformation-ap-southeast-5",
+ "cloudformation-ap-southeast-6",
"cloudformation-ap-southeast-7",
"cloudformation-ca-central-1",
"cloudformation-ca-west-1",
@@ -827,6 +857,7 @@ final class AWSCloudHSM: AWSNamedService, SubService {
"cloudhsm-eu-central-2",
"cloudhsm-eu-north-1",
"cloudhsm-eu-south-1",
+ "cloudhsm-eu-south-2",
"cloudhsm-eu-west-1",
"cloudhsm-eu-west-2",
"cloudhsm-eu-west-3",
@@ -852,10 +883,13 @@ final class AWSCloudShell: AWSNamedService, SubService {
"cloudshell-ap-northeast-2",
"cloudshell-ap-northeast-3",
"cloudshell-ap-south-1",
+ "cloudshell-ap-south-2",
"cloudshell-ap-southeast-1",
"cloudshell-ap-southeast-2",
"cloudshell-ap-southeast-3",
+ "cloudshell-ap-southeast-4",
"cloudshell-ca-central-1",
+ "cloudshell-ca-west-1",
"cloudshell-eu-central-1",
"cloudshell-eu-north-1",
"cloudshell-eu-south-1",
@@ -863,6 +897,7 @@ final class AWSCloudShell: AWSNamedService, SubService {
"cloudshell-eu-west-1",
"cloudshell-eu-west-2",
"cloudshell-eu-west-3",
+ "cloudshell-il-central-1",
"cloudshell-me-central-1",
"cloudshell-me-south-1",
"cloudshell-sa-east-1",
@@ -880,6 +915,7 @@ final class AWSCloudTrail: AWSNamedService, SubService {
let ids = Set([
"cloudtrail-af-south-1",
"cloudtrail-ap-east-1",
+ "cloudtrail-ap-east-2",
"cloudtrail-ap-northeast-1",
"cloudtrail-ap-northeast-2",
"cloudtrail-ap-northeast-3",
@@ -890,6 +926,7 @@ final class AWSCloudTrail: AWSNamedService, SubService {
"cloudtrail-ap-southeast-3",
"cloudtrail-ap-southeast-4",
"cloudtrail-ap-southeast-5",
+ "cloudtrail-ap-southeast-6",
"cloudtrail-ap-southeast-7",
"cloudtrail-ca-central-1",
"cloudtrail-ca-west-1",
@@ -1008,6 +1045,7 @@ final class AWSCodeDeploy: AWSNamedService, SubService {
let ids = Set([
"codedeploy-af-south-1",
"codedeploy-ap-east-1",
+ "codedeploy-ap-east-2",
"codedeploy-ap-northeast-1",
"codedeploy-ap-northeast-2",
"codedeploy-ap-northeast-3",
@@ -1118,6 +1156,7 @@ final class AWSConfig: AWSNamedService, SubService {
let ids = Set([
"config-af-south-1",
"config-ap-east-1",
+ "config-ap-east-2",
"config-ap-northeast-1",
"config-ap-northeast-2",
"config-ap-northeast-3",
@@ -1128,6 +1167,7 @@ final class AWSConfig: AWSNamedService, SubService {
"config-ap-southeast-3",
"config-ap-southeast-4",
"config-ap-southeast-5",
+ "config-ap-southeast-6",
"config-ap-southeast-7",
"config-ca-central-1",
"config-ca-west-1",
@@ -1193,6 +1233,7 @@ final class AWSControlCatalog: AWSNamedService, SubService {
let ids = Set([
"controlcatalog-af-south-1",
"controlcatalog-ap-east-1",
+ "controlcatalog-ap-east-2",
"controlcatalog-ap-northeast-1",
"controlcatalog-ap-northeast-2",
"controlcatalog-ap-northeast-3",
@@ -1203,6 +1244,7 @@ final class AWSControlCatalog: AWSNamedService, SubService {
"controlcatalog-ap-southeast-3",
"controlcatalog-ap-southeast-4",
"controlcatalog-ap-southeast-5",
+ "controlcatalog-ap-southeast-7",
"controlcatalog-ca-central-1",
"controlcatalog-ca-west-1",
"controlcatalog-eu-central-1",
@@ -1216,6 +1258,7 @@ final class AWSControlCatalog: AWSNamedService, SubService {
"controlcatalog-il-central-1",
"controlcatalog-me-central-1",
"controlcatalog-me-south-1",
+ "controlcatalog-mx-central-1",
"controlcatalog-sa-east-1",
"controlcatalog-us-east-1",
"controlcatalog-us-east-2",
@@ -1231,6 +1274,7 @@ final class AWSControlTower: AWSNamedService, SubService {
let ids = Set([
"controltower-af-south-1",
"controltower-ap-east-1",
+ "controltower-ap-east-2",
"controltower-ap-northeast-1",
"controltower-ap-northeast-2",
"controltower-ap-northeast-3",
@@ -1241,6 +1285,7 @@ final class AWSControlTower: AWSNamedService, SubService {
"controltower-ap-southeast-3",
"controltower-ap-southeast-4",
"controltower-ap-southeast-5",
+ "controltower-ap-southeast-7",
"controltower-ca-central-1",
"controltower-ca-west-1",
"controltower-eu-central-1",
@@ -1254,6 +1299,7 @@ final class AWSControlTower: AWSNamedService, SubService {
"controltower-il-central-1",
"controltower-me-central-1",
"controltower-me-south-1",
+ "controltower-mx-central-1",
"controltower-sa-east-1",
"controltower-us-east-1",
"controltower-us-east-2",
@@ -1297,6 +1343,7 @@ final class AWSDataSync: AWSNamedService, SubService {
let ids = Set([
"datasync-af-south-1",
"datasync-ap-east-1",
+ "datasync-ap-east-2",
"datasync-ap-northeast-1",
"datasync-ap-northeast-2",
"datasync-ap-northeast-3",
@@ -1307,6 +1354,7 @@ final class AWSDataSync: AWSNamedService, SubService {
"datasync-ap-southeast-3",
"datasync-ap-southeast-4",
"datasync-ap-southeast-5",
+ "datasync-ap-southeast-6",
"datasync-ap-southeast-7",
"datasync-ca-central-1",
"datasync-ca-west-1",
@@ -1337,6 +1385,7 @@ final class AWSDatabaseMigrationService: AWSNamedService, SubService {
let ids = Set([
"dms-af-south-1",
"dms-ap-east-1",
+ "dms-ap-east-2",
"dms-ap-northeast-1",
"dms-ap-northeast-2",
"dms-ap-northeast-3",
@@ -1347,6 +1396,7 @@ final class AWSDatabaseMigrationService: AWSNamedService, SubService {
"dms-ap-southeast-3",
"dms-ap-southeast-4",
"dms-ap-southeast-5",
+ "dms-ap-southeast-6",
"dms-ap-southeast-7",
"dms-ca-central-1",
"dms-ca-west-1",
@@ -1376,10 +1426,12 @@ final class AWSDeadlineCloud: AWSNamedService, SubService {
let name = "AWS Deadline Cloud"
let ids = Set([
"deadline-ap-northeast-1",
+ "deadline-ap-northeast-2",
"deadline-ap-southeast-1",
"deadline-ap-southeast-2",
"deadline-eu-central-1",
"deadline-eu-west-1",
+ "deadline-eu-west-2",
"deadline-us-east-1",
"deadline-us-east-2",
"deadline-us-west-2"
@@ -1421,6 +1473,7 @@ final class AWSDirectConnect: AWSNamedService, SubService {
let ids = Set([
"directconnect-af-south-1",
"directconnect-ap-east-1",
+ "directconnect-ap-east-2",
"directconnect-ap-northeast-1",
"directconnect-ap-northeast-2",
"directconnect-ap-northeast-3",
@@ -1431,6 +1484,7 @@ final class AWSDirectConnect: AWSNamedService, SubService {
"directconnect-ap-southeast-3",
"directconnect-ap-southeast-4",
"directconnect-ap-southeast-5",
+ "directconnect-ap-southeast-6",
"directconnect-ap-southeast-7",
"directconnect-ca-central-1",
"directconnect-ca-west-1",
@@ -1461,6 +1515,7 @@ final class AWSDirectoryService: AWSNamedService, SubService {
let ids = Set([
"directoryservice-af-south-1",
"directoryservice-ap-east-1",
+ "directoryservice-ap-east-2",
"directoryservice-ap-northeast-1",
"directoryservice-ap-northeast-2",
"directoryservice-ap-northeast-3",
@@ -1501,6 +1556,7 @@ final class AWSEC2ImageBuilder: AWSNamedService, SubService {
let ids = Set([
"imagebuilder-af-south-1",
"imagebuilder-ap-east-1",
+ "imagebuilder-ap-east-2",
"imagebuilder-ap-northeast-1",
"imagebuilder-ap-northeast-2",
"imagebuilder-ap-northeast-3",
@@ -1511,6 +1567,7 @@ final class AWSEC2ImageBuilder: AWSNamedService, SubService {
"imagebuilder-ap-southeast-3",
"imagebuilder-ap-southeast-4",
"imagebuilder-ap-southeast-5",
+ "imagebuilder-ap-southeast-6",
"imagebuilder-ap-southeast-7",
"imagebuilder-ca-central-1",
"imagebuilder-ca-west-1",
@@ -1550,6 +1607,8 @@ final class AWSEC2SerialConsole: AWSNamedService, SubService {
"ec2serialconsole-ap-southeast-2",
"ec2serialconsole-ap-southeast-3",
"ec2serialconsole-ap-southeast-4",
+ "ec2serialconsole-ap-southeast-5",
+ "ec2serialconsole-ap-southeast-7",
"ec2serialconsole-ca-central-1",
"ec2serialconsole-ca-west-1",
"ec2serialconsole-eu-central-1",
@@ -1563,6 +1622,7 @@ final class AWSEC2SerialConsole: AWSNamedService, SubService {
"ec2serialconsole-il-central-1",
"ec2serialconsole-me-central-1",
"ec2serialconsole-me-south-1",
+ "ec2serialconsole-mx-central-1",
"ec2serialconsole-sa-east-1",
"ec2serialconsole-us-east-1",
"ec2serialconsole-us-east-2",
@@ -1585,14 +1645,18 @@ final class AWSElasticBeanstalk: AWSNamedService, SubService {
"elasticbeanstalk-ap-southeast-1",
"elasticbeanstalk-ap-southeast-2",
"elasticbeanstalk-ap-southeast-3",
+ "elasticbeanstalk-ap-southeast-5",
+ "elasticbeanstalk-ap-southeast-7",
"elasticbeanstalk-ca-central-1",
"elasticbeanstalk-eu-central-1",
"elasticbeanstalk-eu-north-1",
"elasticbeanstalk-eu-south-1",
+ "elasticbeanstalk-eu-south-2",
"elasticbeanstalk-eu-west-1",
"elasticbeanstalk-eu-west-2",
"elasticbeanstalk-eu-west-3",
"elasticbeanstalk-il-central-1",
+ "elasticbeanstalk-me-central-1",
"elasticbeanstalk-me-south-1",
"elasticbeanstalk-sa-east-1",
"elasticbeanstalk-us-east-1",
@@ -1640,6 +1704,18 @@ final class AWSElasticDisasterRecovery: AWSNamedService, SubService {
])
}
+final class AWSElasticVMWareService: AWSNamedService, SubService {
+ let name = "AWS Elastic VMWare Service"
+ let ids = Set([
+ "promenade-ap-northeast-1",
+ "promenade-eu-central-1",
+ "promenade-eu-west-1",
+ "promenade-us-east-1",
+ "promenade-us-east-2",
+ "promenade-us-west-2"
+ ])
+}
+
final class AWSElemental: AWSNamedService, SubService {
let name = "AWS Elemental"
let ids = Set([
@@ -1695,6 +1771,7 @@ final class AWSEndUserMessaging: AWSNamedService, SubService {
"endusermessaging-il-central-1",
"endusermessaging-me-central-1",
"endusermessaging-me-south-1",
+ "endusermessaging-mx-central-1",
"endusermessaging-sa-east-1",
"endusermessaging-us-east-1",
"endusermessaging-us-east-2",
@@ -1708,10 +1785,12 @@ final class AWSEndUserMessaging: AWSNamedService, SubService {
final class AWSEntityResolution: AWSNamedService, SubService {
let name = "AWS Entity Resolution"
let ids = Set([
+ "entityresolution-af-south-1",
"entityresolution-ap-northeast-1",
"entityresolution-ap-northeast-2",
"entityresolution-ap-southeast-1",
"entityresolution-ap-southeast-2",
+ "entityresolution-ca-central-1",
"entityresolution-eu-central-1",
"entityresolution-eu-west-1",
"entityresolution-eu-west-2",
@@ -1726,6 +1805,7 @@ final class AWSFargate: AWSNamedService, SubService {
let ids = Set([
"fargate-af-south-1",
"fargate-ap-east-1",
+ "fargate-ap-east-2",
"fargate-ap-northeast-1",
"fargate-ap-northeast-2",
"fargate-ap-northeast-3",
@@ -1736,6 +1816,7 @@ final class AWSFargate: AWSNamedService, SubService {
"fargate-ap-southeast-3",
"fargate-ap-southeast-4",
"fargate-ap-southeast-5",
+ "fargate-ap-southeast-6",
"fargate-ap-southeast-7",
"fargate-ca-central-1",
"fargate-ca-west-1",
@@ -1773,6 +1854,7 @@ final class AWSFaultInjectionService: AWSNamedService, SubService {
"fis-ap-southeast-2",
"fis-ca-central-1",
"fis-eu-central-1",
+ "fis-eu-central-2",
"fis-eu-north-1",
"fis-eu-south-1",
"fis-eu-south-2",
@@ -1842,6 +1924,7 @@ final class AWSGlue: AWSNamedService, SubService {
let ids = Set([
"glue-af-south-1",
"glue-ap-east-1",
+ "glue-ap-east-2",
"glue-ap-northeast-1",
"glue-ap-northeast-2",
"glue-ap-northeast-3",
@@ -1925,6 +2008,7 @@ final class AWSHealth: AWSNamedService, SubService {
let name = "AWS Health"
let ids = Set([
"health",
+ "health-us-gov-east-1",
"health-us-gov-west-1"
])
}
@@ -1944,6 +2028,7 @@ final class AWSHealthLake: AWSNamedService, SubService {
let ids = Set([
"healthlake-ap-south-1",
"healthlake-ap-southeast-2",
+ "healthlake-eu-west-1",
"healthlake-eu-west-2",
"healthlake-us-east-1",
"healthlake-us-east-2",
@@ -1954,6 +2039,7 @@ final class AWSHealthLake: AWSNamedService, SubService {
final class AWSHealthOmics: AWSNamedService, SubService {
let name = "AWS HealthOmics"
let ids = Set([
+ "omics-ap-northeast-2",
"omics-ap-southeast-1",
"omics-eu-central-1",
"omics-eu-west-1",
@@ -1978,6 +2064,7 @@ final class AWSIAMIdentityCenter: AWSNamedService, SubService {
"iamidentitycenter-ap-southeast-2",
"iamidentitycenter-ap-southeast-3",
"iamidentitycenter-ap-southeast-4",
+ "iamidentitycenter-ap-southeast-5",
"iamidentitycenter-ca-central-1",
"iamidentitycenter-ca-west-1",
"iamidentitycenter-eu-central-1",
@@ -2015,6 +2102,7 @@ final class AWSIdentityAndAccessManagementRolesAnywhere: AWSNamedService, SubSer
let ids = Set([
"iamrolesanywhere-af-south-1",
"iamrolesanywhere-ap-east-1",
+ "iamrolesanywhere-ap-east-2",
"iamrolesanywhere-ap-northeast-1",
"iamrolesanywhere-ap-northeast-2",
"iamrolesanywhere-ap-northeast-3",
@@ -2025,6 +2113,7 @@ final class AWSIdentityAndAccessManagementRolesAnywhere: AWSNamedService, SubSer
"iamrolesanywhere-ap-southeast-3",
"iamrolesanywhere-ap-southeast-4",
"iamrolesanywhere-ap-southeast-5",
+ "iamrolesanywhere-ap-southeast-6",
"iamrolesanywhere-ap-southeast-7",
"iamrolesanywhere-ca-central-1",
"iamrolesanywhere-ca-west-1",
@@ -2097,6 +2186,7 @@ final class AWSInternetConnectivity: AWSNamedService, SubService {
let ids = Set([
"internetconnectivity-af-south-1",
"internetconnectivity-ap-east-1",
+ "internetconnectivity-ap-east-2",
"internetconnectivity-ap-northeast-1",
"internetconnectivity-ap-northeast-2",
"internetconnectivity-ap-northeast-3",
@@ -2107,6 +2197,7 @@ final class AWSInternetConnectivity: AWSNamedService, SubService {
"internetconnectivity-ap-southeast-3",
"internetconnectivity-ap-southeast-4",
"internetconnectivity-ap-southeast-5",
+ "internetconnectivity-ap-southeast-6",
"internetconnectivity-ap-southeast-7",
"internetconnectivity-ca-central-1",
"internetconnectivity-ca-west-1",
@@ -2195,9 +2286,11 @@ final class AWSIoTDeviceDefender: AWSNamedService, SubService {
"iotdevicedefender-ap-south-1",
"iotdevicedefender-ap-southeast-1",
"iotdevicedefender-ap-southeast-2",
+ "iotdevicedefender-ap-southeast-5",
"iotdevicedefender-ca-central-1",
"iotdevicedefender-eu-central-1",
"iotdevicedefender-eu-north-1",
+ "iotdevicedefender-eu-south-2",
"iotdevicedefender-eu-west-1",
"iotdevicedefender-eu-west-2",
"iotdevicedefender-eu-west-3",
@@ -2275,8 +2368,10 @@ final class AWSIoTGreengrass: AWSNamedService, SubService {
"awsgreengrass-ap-south-1",
"awsgreengrass-ap-southeast-1",
"awsgreengrass-ap-southeast-2",
+ "awsgreengrass-ap-southeast-5",
"awsgreengrass-ca-central-1",
"awsgreengrass-eu-central-1",
+ "awsgreengrass-eu-south-2",
"awsgreengrass-eu-west-1",
"awsgreengrass-eu-west-2",
"awsgreengrass-us-east-1",
@@ -2326,6 +2421,7 @@ final class AWSKeyManagementService: AWSNamedService, SubService {
let ids = Set([
"kms-af-south-1",
"kms-ap-east-1",
+ "kms-ap-east-2",
"kms-ap-northeast-1",
"kms-ap-northeast-2",
"kms-ap-northeast-3",
@@ -2336,6 +2432,7 @@ final class AWSKeyManagementService: AWSNamedService, SubService {
"kms-ap-southeast-3",
"kms-ap-southeast-4",
"kms-ap-southeast-5",
+ "kms-ap-southeast-6",
"kms-ap-southeast-7",
"kms-ca-central-1",
"kms-ca-west-1",
@@ -2366,6 +2463,7 @@ final class AWSLakeFormation: AWSNamedService, SubService {
let ids = Set([
"lakeformation-af-south-1",
"lakeformation-ap-east-1",
+ "lakeformation-ap-east-2",
"lakeformation-ap-northeast-1",
"lakeformation-ap-northeast-2",
"lakeformation-ap-northeast-3",
@@ -2376,6 +2474,7 @@ final class AWSLakeFormation: AWSNamedService, SubService {
"lakeformation-ap-southeast-3",
"lakeformation-ap-southeast-4",
"lakeformation-ap-southeast-5",
+ "lakeformation-ap-southeast-7",
"lakeformation-ca-central-1",
"lakeformation-ca-west-1",
"lakeformation-eu-central-1",
@@ -2389,6 +2488,7 @@ final class AWSLakeFormation: AWSNamedService, SubService {
"lakeformation-il-central-1",
"lakeformation-me-central-1",
"lakeformation-me-south-1",
+ "lakeformation-mx-central-1",
"lakeformation-sa-east-1",
"lakeformation-us-east-1",
"lakeformation-us-east-2",
@@ -2404,6 +2504,7 @@ final class AWSLambda: AWSNamedService, SubService {
let ids = Set([
"lambda-af-south-1",
"lambda-ap-east-1",
+ "lambda-ap-east-2",
"lambda-ap-northeast-1",
"lambda-ap-northeast-2",
"lambda-ap-northeast-3",
@@ -2414,6 +2515,7 @@ final class AWSLambda: AWSNamedService, SubService {
"lambda-ap-southeast-3",
"lambda-ap-southeast-4",
"lambda-ap-southeast-5",
+ "lambda-ap-southeast-6",
"lambda-ap-southeast-7",
"lambda-ca-central-1",
"lambda-ca-west-1",
@@ -2479,6 +2581,7 @@ final class AWSLicenseManager: AWSNamedService, SubService {
let ids = Set([
"licensemanager-af-south-1",
"licensemanager-ap-east-1",
+ "licensemanager-ap-east-2",
"licensemanager-ap-northeast-1",
"licensemanager-ap-northeast-2",
"licensemanager-ap-northeast-3",
@@ -2489,6 +2592,7 @@ final class AWSLicenseManager: AWSNamedService, SubService {
"licensemanager-ap-southeast-3",
"licensemanager-ap-southeast-4",
"licensemanager-ap-southeast-5",
+ "licensemanager-ap-southeast-7",
"licensemanager-ca-central-1",
"licensemanager-ca-west-1",
"licensemanager-eu-central-1",
@@ -2502,6 +2606,7 @@ final class AWSLicenseManager: AWSNamedService, SubService {
"licensemanager-il-central-1",
"licensemanager-me-central-1",
"licensemanager-me-south-1",
+ "licensemanager-mx-central-1",
"licensemanager-sa-east-1",
"licensemanager-us-east-1",
"licensemanager-us-east-2",
@@ -2612,6 +2717,7 @@ final class AWSMultipleServices: AWSNamedService, SubService {
let ids = Set([
"multipleservices-af-south-1",
"multipleservices-ap-east-1",
+ "multipleservices-ap-east-2",
"multipleservices-ap-northeast-1",
"multipleservices-ap-northeast-2",
"multipleservices-ap-northeast-3",
@@ -2622,6 +2728,7 @@ final class AWSMultipleServices: AWSNamedService, SubService {
"multipleservices-ap-southeast-3",
"multipleservices-ap-southeast-4",
"multipleservices-ap-southeast-5",
+ "multipleservices-ap-southeast-6",
"multipleservices-ap-southeast-7",
"multipleservices-ca-central-1",
"multipleservices-ca-west-1",
@@ -2650,6 +2757,7 @@ final class AWSNATGateway: AWSNamedService, SubService {
let ids = Set([
"natgateway-af-south-1",
"natgateway-ap-east-1",
+ "natgateway-ap-east-2",
"natgateway-ap-northeast-1",
"natgateway-ap-northeast-2",
"natgateway-ap-northeast-3",
@@ -2660,6 +2768,7 @@ final class AWSNATGateway: AWSNamedService, SubService {
"natgateway-ap-southeast-3",
"natgateway-ap-southeast-4",
"natgateway-ap-southeast-5",
+ "natgateway-ap-southeast-6",
"natgateway-ap-southeast-7",
"natgateway-ca-central-1",
"natgateway-ca-west-1",
@@ -2716,6 +2825,7 @@ final class AWSNetworkFirewall: AWSNamedService, SubService {
let ids = Set([
"networkfirewall-af-south-1",
"networkfirewall-ap-east-1",
+ "networkfirewall-ap-east-2",
"networkfirewall-ap-northeast-1",
"networkfirewall-ap-northeast-2",
"networkfirewall-ap-northeast-3",
@@ -2834,6 +2944,7 @@ final class AWSOutposts: AWSNamedService, SubService {
"outposts-il-central-1",
"outposts-me-central-1",
"outposts-me-south-1",
+ "outposts-mx-central-1",
"outposts-sa-east-1",
"outposts-us-east-1",
"outposts-us-east-2",
@@ -2863,8 +2974,11 @@ final class AWSParallelComputingService: AWSNamedService, SubService {
"pcs-eu-central-1",
"pcs-eu-north-1",
"pcs-eu-west-1",
+ "pcs-eu-west-2",
"pcs-us-east-1",
"pcs-us-east-2",
+ "pcs-us-gov-east-1",
+ "pcs-us-gov-west-1",
"pcs-us-west-2"
])
}
@@ -2882,6 +2996,8 @@ final class AWSPaymentCryptography: AWSNamedService, SubService {
let name = "AWS Payment Cryptography"
let ids = Set([
"paymentcryptography-ap-northeast-1",
+ "paymentcryptography-ap-northeast-3",
+ "paymentcryptography-ap-south-1",
"paymentcryptography-ap-southeast-1",
"paymentcryptography-eu-central-1",
"paymentcryptography-eu-west-1",
@@ -2900,20 +3016,12 @@ final class AWSPriceListService: AWSNamedService, SubService {
])
}
-final class AWSPrivate5G: AWSNamedService, SubService {
- let name = "AWS Private 5G"
- let ids = Set([
- "private5g-us-east-1",
- "private5g-us-east-2",
- "private5g-us-west-2"
- ])
-}
-
final class AWSPrivateCAConnectorForActiveDirectory: AWSNamedService, SubService {
let name = "AWS Private CA Connector for Active Directory"
let ids = Set([
"pcaconnectorad-af-south-1",
"pcaconnectorad-ap-east-1",
+ "pcaconnectorad-ap-east-2",
"pcaconnectorad-ap-northeast-1",
"pcaconnectorad-ap-northeast-2",
"pcaconnectorad-ap-northeast-3",
@@ -2924,6 +3032,7 @@ final class AWSPrivateCAConnectorForActiveDirectory: AWSNamedService, SubService
"pcaconnectorad-ap-southeast-3",
"pcaconnectorad-ap-southeast-4",
"pcaconnectorad-ap-southeast-5",
+ "pcaconnectorad-ap-southeast-7",
"pcaconnectorad-ca-central-1",
"pcaconnectorad-ca-west-1",
"pcaconnectorad-eu-central-1",
@@ -2937,6 +3046,7 @@ final class AWSPrivateCAConnectorForActiveDirectory: AWSNamedService, SubService
"pcaconnectorad-il-central-1",
"pcaconnectorad-me-central-1",
"pcaconnectorad-me-south-1",
+ "pcaconnectorad-mx-central-1",
"pcaconnectorad-sa-east-1",
"pcaconnectorad-us-east-1",
"pcaconnectorad-us-east-2",
@@ -2959,6 +3069,8 @@ final class AWSPrivateCAConnectorForSCEP: AWSNamedService, SubService {
"pca-connector-scep-ap-southeast-2",
"pca-connector-scep-ap-southeast-3",
"pca-connector-scep-ap-southeast-4",
+ "pca-connector-scep-ap-southeast-5",
+ "pca-connector-scep-ap-southeast-7",
"pca-connector-scep-ca-central-1",
"pca-connector-scep-ca-west-1",
"pca-connector-scep-eu-central-1",
@@ -2972,6 +3084,7 @@ final class AWSPrivateCAConnectorForSCEP: AWSNamedService, SubService {
"pca-connector-scep-il-central-1",
"pca-connector-scep-me-central-1",
"pca-connector-scep-me-south-1",
+ "pca-connector-scep-mx-central-1",
"pca-connector-scep-sa-east-1",
"pca-connector-scep-us-east-1",
"pca-connector-scep-us-east-2",
@@ -2985,6 +3098,7 @@ final class AWSPrivateCertificateAuthority: AWSNamedService, SubService {
let ids = Set([
"acm-pca-af-south-1",
"acm-pca-ap-east-1",
+ "acm-pca-ap-east-2",
"acm-pca-ap-northeast-1",
"acm-pca-ap-northeast-2",
"acm-pca-ap-northeast-3",
@@ -2995,6 +3109,7 @@ final class AWSPrivateCertificateAuthority: AWSNamedService, SubService {
"acm-pca-ap-southeast-3",
"acm-pca-ap-southeast-4",
"acm-pca-ap-southeast-5",
+ "acm-pca-ap-southeast-6",
"acm-pca-ap-southeast-7",
"acm-pca-ca-central-1",
"acm-pca-ca-west-1",
@@ -3056,6 +3171,8 @@ final class AWSQuickSight: AWSNamedService, SubService {
"quicksight-eu-west-1",
"quicksight-eu-west-2",
"quicksight-eu-west-3",
+ "quicksight-il-central-1",
+ "quicksight-me-central-1",
"quicksight-sa-east-1",
"quicksight-us-east-1",
"quicksight-us-east-2",
@@ -3124,6 +3241,7 @@ final class AWSResourceAccessManager: AWSNamedService, SubService {
let ids = Set([
"ram-af-south-1",
"ram-ap-east-1",
+ "ram-ap-east-2",
"ram-ap-northeast-1",
"ram-ap-northeast-2",
"ram-ap-northeast-3",
@@ -3134,6 +3252,7 @@ final class AWSResourceAccessManager: AWSNamedService, SubService {
"ram-ap-southeast-3",
"ram-ap-southeast-4",
"ram-ap-southeast-5",
+ "ram-ap-southeast-6",
"ram-ap-southeast-7",
"ram-ca-central-1",
"ram-ca-west-1",
@@ -3164,6 +3283,7 @@ final class AWSResourceExplorer: AWSNamedService, SubService {
let ids = Set([
"resourceexplorer-af-south-1",
"resourceexplorer-ap-east-1",
+ "resourceexplorer-ap-east-2",
"resourceexplorer-ap-northeast-1",
"resourceexplorer-ap-northeast-2",
"resourceexplorer-ap-northeast-3",
@@ -3173,6 +3293,8 @@ final class AWSResourceExplorer: AWSNamedService, SubService {
"resourceexplorer-ap-southeast-2",
"resourceexplorer-ap-southeast-3",
"resourceexplorer-ap-southeast-4",
+ "resourceexplorer-ap-southeast-5",
+ "resourceexplorer-ap-southeast-7",
"resourceexplorer-ca-central-1",
"resourceexplorer-ca-west-1",
"resourceexplorer-eu-central-1",
@@ -3186,6 +3308,7 @@ final class AWSResourceExplorer: AWSNamedService, SubService {
"resourceexplorer-il-central-1",
"resourceexplorer-me-central-1",
"resourceexplorer-me-south-1",
+ "resourceexplorer-mx-central-1",
"resourceexplorer-sa-east-1",
"resourceexplorer-us-east-1",
"resourceexplorer-us-east-2",
@@ -3208,6 +3331,7 @@ final class AWSResourceGroupsTaggingAPI: AWSNamedService, SubService {
let ids = Set([
"resourcegroupstaggingapi-af-south-1",
"resourcegroupstaggingapi-ap-east-1",
+ "resourcegroupstaggingapi-ap-east-2",
"resourcegroupstaggingapi-ap-northeast-1",
"resourcegroupstaggingapi-ap-northeast-2",
"resourcegroupstaggingapi-ap-northeast-3",
@@ -3218,6 +3342,7 @@ final class AWSResourceGroupsTaggingAPI: AWSNamedService, SubService {
"resourcegroupstaggingapi-ap-southeast-3",
"resourcegroupstaggingapi-ap-southeast-4",
"resourcegroupstaggingapi-ap-southeast-5",
+ "resourcegroupstaggingapi-ap-southeast-6",
"resourcegroupstaggingapi-ap-southeast-7",
"resourcegroupstaggingapi-ca-central-1",
"resourcegroupstaggingapi-ca-west-1",
@@ -3243,25 +3368,12 @@ final class AWSResourceGroupsTaggingAPI: AWSNamedService, SubService {
])
}
-final class AWSRoboMaker: AWSNamedService, SubService {
- let name = "AWS RoboMaker"
- let ids = Set([
- "robomaker-ap-northeast-1",
- "robomaker-ap-southeast-1",
- "robomaker-eu-central-1",
- "robomaker-eu-west-1",
- "robomaker-us-east-1",
- "robomaker-us-east-2",
- "robomaker-us-gov-west-1",
- "robomaker-us-west-2"
- ])
-}
-
final class AWSSecretsManager: AWSNamedService, SubService {
let name = "AWS Secrets Manager"
let ids = Set([
"secretsmanager-af-south-1",
"secretsmanager-ap-east-1",
+ "secretsmanager-ap-east-2",
"secretsmanager-ap-northeast-1",
"secretsmanager-ap-northeast-2",
"secretsmanager-ap-northeast-3",
@@ -3272,6 +3384,7 @@ final class AWSSecretsManager: AWSNamedService, SubService {
"secretsmanager-ap-southeast-3",
"secretsmanager-ap-southeast-4",
"secretsmanager-ap-southeast-5",
+ "secretsmanager-ap-southeast-6",
"secretsmanager-ap-southeast-7",
"secretsmanager-ca-central-1",
"secretsmanager-ca-west-1",
@@ -3302,6 +3415,7 @@ final class AWSSecurityHub: AWSNamedService, SubService {
let ids = Set([
"securityhub-af-south-1",
"securityhub-ap-east-1",
+ "securityhub-ap-east-2",
"securityhub-ap-northeast-1",
"securityhub-ap-northeast-2",
"securityhub-ap-northeast-3",
@@ -3342,6 +3456,7 @@ final class AWSSecurityIncidentResponse: AWSNamedService, SubService {
let ids = Set([
"indra-ap-northeast-1",
"indra-ap-northeast-2",
+ "indra-ap-south-1",
"indra-ap-southeast-1",
"indra-ap-southeast-2",
"indra-ca-central-1",
@@ -3349,6 +3464,8 @@ final class AWSSecurityIncidentResponse: AWSNamedService, SubService {
"indra-eu-north-1",
"indra-eu-west-1",
"indra-eu-west-2",
+ "indra-eu-west-3",
+ "indra-sa-east-1",
"indra-us-east-1",
"indra-us-east-2",
"indra-us-west-2"
@@ -3360,6 +3477,7 @@ final class AWSSecurityTokenService: AWSNamedService, SubService {
let ids = Set([
"sts-af-south-1",
"sts-ap-east-1",
+ "sts-ap-east-2",
"sts-ap-northeast-1",
"sts-ap-northeast-2",
"sts-ap-northeast-3",
@@ -3370,6 +3488,7 @@ final class AWSSecurityTokenService: AWSNamedService, SubService {
"sts-ap-southeast-3",
"sts-ap-southeast-4",
"sts-ap-southeast-5",
+ "sts-ap-southeast-6",
"sts-ap-southeast-7",
"sts-ca-central-1",
"sts-ca-west-1",
@@ -3462,6 +3581,7 @@ final class AWSServiceQuotas: AWSNamedService, SubService {
let ids = Set([
"servicequotas-af-south-1",
"servicequotas-ap-east-1",
+ "servicequotas-ap-east-2",
"servicequotas-ap-northeast-1",
"servicequotas-ap-northeast-2",
"servicequotas-ap-northeast-3",
@@ -3472,6 +3592,7 @@ final class AWSServiceQuotas: AWSNamedService, SubService {
"servicequotas-ap-southeast-3",
"servicequotas-ap-southeast-4",
"servicequotas-ap-southeast-5",
+ "servicequotas-ap-southeast-6",
"servicequotas-ap-southeast-7",
"servicequotas-ca-central-1",
"servicequotas-ca-west-1",
@@ -3508,6 +3629,7 @@ final class AWSSignIn: AWSNamedService, SubService {
let ids = Set([
"signin-af-south-1",
"signin-ap-east-1",
+ "signin-ap-east-2",
"signin-ap-northeast-1",
"signin-ap-northeast-2",
"signin-ap-northeast-3",
@@ -3518,6 +3640,7 @@ final class AWSSignIn: AWSNamedService, SubService {
"signin-ap-southeast-3",
"signin-ap-southeast-4",
"signin-ap-southeast-5",
+ "signin-ap-southeast-6",
"signin-ap-southeast-7",
"signin-ca-central-1",
"signin-ca-west-1",
@@ -3564,6 +3687,7 @@ final class AWSSitetoSiteVPN: AWSNamedService, SubService {
let ids = Set([
"vpnvpc-af-south-1",
"vpnvpc-ap-east-1",
+ "vpnvpc-ap-east-2",
"vpnvpc-ap-northeast-1",
"vpnvpc-ap-northeast-2",
"vpnvpc-ap-northeast-3",
@@ -3574,6 +3698,7 @@ final class AWSSitetoSiteVPN: AWSNamedService, SubService {
"vpnvpc-ap-southeast-3",
"vpnvpc-ap-southeast-4",
"vpnvpc-ap-southeast-5",
+ "vpnvpc-ap-southeast-6",
"vpnvpc-ap-southeast-7",
"vpnvpc-ca-central-1",
"vpnvpc-ca-west-1",
@@ -3604,6 +3729,7 @@ final class AWSStepFunctions: AWSNamedService, SubService {
let ids = Set([
"state-af-south-1",
"state-ap-east-1",
+ "state-ap-east-2",
"state-ap-northeast-1",
"state-ap-northeast-2",
"state-ap-northeast-3",
@@ -3614,6 +3740,7 @@ final class AWSStepFunctions: AWSNamedService, SubService {
"state-ap-southeast-3",
"state-ap-southeast-4",
"state-ap-southeast-5",
+ "state-ap-southeast-6",
"state-ap-southeast-7",
"state-ca-central-1",
"state-ca-west-1",
@@ -3644,6 +3771,7 @@ final class AWSStorageGateway: AWSNamedService, SubService {
let ids = Set([
"storagegateway-af-south-1",
"storagegateway-ap-east-1",
+ "storagegateway-ap-east-2",
"storagegateway-ap-northeast-1",
"storagegateway-ap-northeast-2",
"storagegateway-ap-northeast-3",
@@ -3682,10 +3810,9 @@ final class AWSStorageGateway: AWSNamedService, SubService {
final class AWSSupportAPI: AWSNamedService, SubService {
let name = "AWS Support API"
let ids = Set([
- "supportapi-eu-west-1",
- "supportapi-us-east-1",
- "supportapi-us-gov-west-1",
- "supportapi-us-west-2"
+ "supportapi",
+ "supportapi-us-gov-east-1",
+ "supportapi-us-gov-west-1"
])
}
@@ -3702,6 +3829,7 @@ final class AWSSystemsManager: AWSNamedService, SubService {
let ids = Set([
"ec2systemsmanager-af-south-1",
"ec2systemsmanager-ap-east-1",
+ "ec2systemsmanager-ap-east-2",
"ec2systemsmanager-ap-northeast-1",
"ec2systemsmanager-ap-northeast-2",
"ec2systemsmanager-ap-northeast-3",
@@ -3712,6 +3840,7 @@ final class AWSSystemsManager: AWSNamedService, SubService {
"ec2systemsmanager-ap-southeast-3",
"ec2systemsmanager-ap-southeast-4",
"ec2systemsmanager-ap-southeast-5",
+ "ec2systemsmanager-ap-southeast-6",
"ec2systemsmanager-ap-southeast-7",
"ec2systemsmanager-ca-central-1",
"ec2systemsmanager-ca-west-1",
@@ -3792,6 +3921,7 @@ final class AWSTrafficMirroring: AWSNamedService, SubService {
let ids = Set([
"trafficmirroring-af-south-1",
"trafficmirroring-ap-east-1",
+ "trafficmirroring-ap-east-2",
"trafficmirroring-ap-northeast-1",
"trafficmirroring-ap-northeast-2",
"trafficmirroring-ap-northeast-3",
@@ -3802,6 +3932,7 @@ final class AWSTrafficMirroring: AWSNamedService, SubService {
"trafficmirroring-ap-southeast-3",
"trafficmirroring-ap-southeast-4",
"trafficmirroring-ap-southeast-5",
+ "trafficmirroring-ap-southeast-6",
"trafficmirroring-ap-southeast-7",
"trafficmirroring-ca-central-1",
"trafficmirroring-ca-west-1",
@@ -3832,6 +3963,7 @@ final class AWSTransferFamily: AWSNamedService, SubService {
let ids = Set([
"transfer-af-south-1",
"transfer-ap-east-1",
+ "transfer-ap-east-2",
"transfer-ap-northeast-1",
"transfer-ap-northeast-2",
"transfer-ap-northeast-3",
@@ -3842,6 +3974,7 @@ final class AWSTransferFamily: AWSNamedService, SubService {
"transfer-ap-southeast-3",
"transfer-ap-southeast-4",
"transfer-ap-southeast-5",
+ "transfer-ap-southeast-7",
"transfer-ca-central-1",
"transfer-ca-west-1",
"transfer-eu-central-1",
@@ -3855,6 +3988,7 @@ final class AWSTransferFamily: AWSNamedService, SubService {
"transfer-il-central-1",
"transfer-me-central-1",
"transfer-me-south-1",
+ "transfer-mx-central-1",
"transfer-sa-east-1",
"transfer-us-east-1",
"transfer-us-east-2",
@@ -3865,11 +3999,20 @@ final class AWSTransferFamily: AWSNamedService, SubService {
])
}
+final class AWSTransform: AWSNamedService, SubService {
+ let name = "AWS Transform"
+ let ids = Set([
+ "transform-eu-central-1",
+ "transform-us-east-1"
+ ])
+}
+
final class AWSTransitGateway: AWSNamedService, SubService {
let name = "AWS Transit Gateway"
let ids = Set([
"transitgateway-af-south-1",
"transitgateway-ap-east-1",
+ "transitgateway-ap-east-2",
"transitgateway-ap-northeast-1",
"transitgateway-ap-northeast-2",
"transitgateway-ap-northeast-3",
@@ -3880,6 +4023,7 @@ final class AWSTransitGateway: AWSNamedService, SubService {
"transitgateway-ap-southeast-3",
"transitgateway-ap-southeast-4",
"transitgateway-ap-southeast-5",
+ "transitgateway-ap-southeast-6",
"transitgateway-ap-southeast-7",
"transitgateway-ca-central-1",
"transitgateway-ca-west-1",
@@ -3926,6 +4070,7 @@ final class AWSVMImportExport: AWSNamedService, SubService {
let ids = Set([
"vmimportexport-af-south-1",
"vmimportexport-ap-east-1",
+ "vmimportexport-ap-east-2",
"vmimportexport-ap-northeast-1",
"vmimportexport-ap-northeast-2",
"vmimportexport-ap-northeast-3",
@@ -3936,6 +4081,7 @@ final class AWSVMImportExport: AWSNamedService, SubService {
"vmimportexport-ap-southeast-3",
"vmimportexport-ap-southeast-4",
"vmimportexport-ap-southeast-5",
+ "vmimportexport-ap-southeast-6",
"vmimportexport-ap-southeast-7",
"vmimportexport-ca-central-1",
"vmimportexport-ca-west-1",
@@ -3966,6 +4112,7 @@ final class AWSVPCEPrivateLink: AWSNamedService, SubService {
let ids = Set([
"privatelink-af-south-1",
"privatelink-ap-east-1",
+ "privatelink-ap-east-2",
"privatelink-ap-northeast-1",
"privatelink-ap-northeast-2",
"privatelink-ap-northeast-3",
@@ -3976,6 +4123,7 @@ final class AWSVPCEPrivateLink: AWSNamedService, SubService {
"privatelink-ap-southeast-3",
"privatelink-ap-southeast-4",
"privatelink-ap-southeast-5",
+ "privatelink-ap-southeast-6",
"privatelink-ap-southeast-7",
"privatelink-ca-central-1",
"privatelink-ca-west-1",
@@ -4032,6 +4180,7 @@ final class AWSVerifiedPermissions: AWSNamedService, SubService {
let ids = Set([
"verifiedpermissions-af-south-1",
"verifiedpermissions-ap-east-1",
+ "verifiedpermissions-ap-east-2",
"verifiedpermissions-ap-northeast-1",
"verifiedpermissions-ap-northeast-2",
"verifiedpermissions-ap-northeast-3",
@@ -4041,6 +4190,9 @@ final class AWSVerifiedPermissions: AWSNamedService, SubService {
"verifiedpermissions-ap-southeast-2",
"verifiedpermissions-ap-southeast-3",
"verifiedpermissions-ap-southeast-4",
+ "verifiedpermissions-ap-southeast-5",
+ "verifiedpermissions-ap-southeast-6",
+ "verifiedpermissions-ap-southeast-7",
"verifiedpermissions-ca-central-1",
"verifiedpermissions-ca-west-1",
"verifiedpermissions-eu-central-1",
@@ -4054,6 +4206,7 @@ final class AWSVerifiedPermissions: AWSNamedService, SubService {
"verifiedpermissions-il-central-1",
"verifiedpermissions-me-central-1",
"verifiedpermissions-me-south-1",
+ "verifiedpermissions-mx-central-1",
"verifiedpermissions-sa-east-1",
"verifiedpermissions-us-east-1",
"verifiedpermissions-us-east-2",
@@ -4067,9 +4220,41 @@ final class AWSVerifiedPermissions: AWSNamedService, SubService {
final class AWSWAF: AWSNamedService, SubService {
let name = "AWS WAF"
let ids = Set([
- "awswaf",
+ "awswaf-af-south-1",
+ "awswaf-ap-east-1",
+ "awswaf-ap-east-2",
+ "awswaf-ap-northeast-1",
+ "awswaf-ap-northeast-2",
+ "awswaf-ap-northeast-3",
+ "awswaf-ap-south-1",
+ "awswaf-ap-south-2",
+ "awswaf-ap-southeast-1",
+ "awswaf-ap-southeast-2",
+ "awswaf-ap-southeast-3",
+ "awswaf-ap-southeast-4",
+ "awswaf-ap-southeast-5",
+ "awswaf-ap-southeast-7",
+ "awswaf-ca-central-1",
+ "awswaf-ca-west-1",
+ "awswaf-eu-central-1",
+ "awswaf-eu-central-2",
+ "awswaf-eu-north-1",
+ "awswaf-eu-south-1",
+ "awswaf-eu-south-2",
+ "awswaf-eu-west-1",
+ "awswaf-eu-west-2",
+ "awswaf-eu-west-3",
+ "awswaf-il-central-1",
+ "awswaf-me-central-1",
+ "awswaf-me-south-1",
+ "awswaf-mx-central-1",
+ "awswaf-sa-east-1",
+ "awswaf-us-east-1",
+ "awswaf-us-east-2",
"awswaf-us-gov-east-1",
- "awswaf-us-gov-west-1"
+ "awswaf-us-gov-west-1",
+ "awswaf-us-west-1",
+ "awswaf-us-west-2"
])
}
@@ -4127,6 +4312,7 @@ final class AWSXRay: AWSNamedService, SubService {
let ids = Set([
"xray-af-south-1",
"xray-ap-east-1",
+ "xray-ap-east-2",
"xray-ap-northeast-1",
"xray-ap-northeast-2",
"xray-ap-northeast-3",
@@ -4137,6 +4323,7 @@ final class AWSXRay: AWSNamedService, SubService {
"xray-ap-southeast-3",
"xray-ap-southeast-4",
"xray-ap-southeast-5",
+ "xray-ap-southeast-6",
"xray-ap-southeast-7",
"xray-ca-central-1",
"xray-ca-west-1",
@@ -4180,6 +4367,7 @@ final class AmazonAPIGateway: AWSNamedService, SubService {
let ids = Set([
"apigateway-af-south-1",
"apigateway-ap-east-1",
+ "apigateway-ap-east-2",
"apigateway-ap-northeast-1",
"apigateway-ap-northeast-2",
"apigateway-ap-northeast-3",
@@ -4190,6 +4378,7 @@ final class AmazonAPIGateway: AWSNamedService, SubService {
"apigateway-ap-southeast-3",
"apigateway-ap-southeast-4",
"apigateway-ap-southeast-5",
+ "apigateway-ap-southeast-6",
"apigateway-ap-southeast-7",
"apigateway-ca-central-1",
"apigateway-ca-west-1",
@@ -4249,6 +4438,7 @@ final class AmazonAppStream20: AWSNamedService, SubService {
"appstream2-eu-central-1",
"appstream2-eu-west-1",
"appstream2-eu-west-2",
+ "appstream2-eu-west-3",
"appstream2-sa-east-1",
"appstream2-us-east-1",
"appstream2-us-east-2",
@@ -4273,6 +4463,7 @@ final class AmazonAthena: AWSNamedService, SubService {
"athena-ap-southeast-3",
"athena-ap-southeast-4",
"athena-ap-southeast-5",
+ "athena-ap-southeast-7",
"athena-ca-central-1",
"athena-ca-west-1",
"athena-eu-central-1",
@@ -4286,6 +4477,7 @@ final class AmazonAthena: AWSNamedService, SubService {
"athena-il-central-1",
"athena-me-central-1",
"athena-me-south-1",
+ "athena-mx-central-1",
"athena-sa-east-1",
"athena-us-east-1",
"athena-us-east-2",
@@ -4314,6 +4506,21 @@ final class AmazonAugmentedAI: AWSNamedService, SubService {
])
}
+final class AmazonAuroraDSQLService: AWSNamedService, SubService {
+ let name = "Amazon Aurora DSQL Service"
+ let ids = Set([
+ "dsql-ap-northeast-1",
+ "dsql-ap-northeast-2",
+ "dsql-ap-northeast-3",
+ "dsql-eu-west-1",
+ "dsql-eu-west-2",
+ "dsql-eu-west-3",
+ "dsql-us-east-1",
+ "dsql-us-east-2",
+ "dsql-us-west-2"
+ ])
+}
+
final class AmazonBedrock: AWSNamedService, SubService {
let name = "Amazon Bedrock"
let ids = Set([
@@ -4324,6 +4531,8 @@ final class AmazonBedrock: AWSNamedService, SubService {
"bedrock-ap-south-2",
"bedrock-ap-southeast-1",
"bedrock-ap-southeast-2",
+ "bedrock-ap-southeast-3",
+ "bedrock-ap-southeast-4",
"bedrock-ca-central-1",
"bedrock-eu-central-1",
"bedrock-eu-central-2",
@@ -4338,6 +4547,7 @@ final class AmazonBedrock: AWSNamedService, SubService {
"bedrock-us-east-2",
"bedrock-us-gov-east-1",
"bedrock-us-gov-west-1",
+ "bedrock-us-west-1",
"bedrock-us-west-2"
])
}
@@ -4406,6 +4616,7 @@ final class AmazonCloudWatch: AWSNamedService, SubService {
let ids = Set([
"cloudwatch-af-south-1",
"cloudwatch-ap-east-1",
+ "cloudwatch-ap-east-2",
"cloudwatch-ap-northeast-1",
"cloudwatch-ap-northeast-2",
"cloudwatch-ap-northeast-3",
@@ -4416,6 +4627,7 @@ final class AmazonCloudWatch: AWSNamedService, SubService {
"cloudwatch-ap-southeast-3",
"cloudwatch-ap-southeast-4",
"cloudwatch-ap-southeast-5",
+ "cloudwatch-ap-southeast-6",
"cloudwatch-ap-southeast-7",
"cloudwatch-ca-central-1",
"cloudwatch-ca-west-1",
@@ -4529,20 +4741,28 @@ final class AmazonCloudWatchInternetMonitor: AWSNamedService, SubService {
final class AmazonCloudWatchRUM: AWSNamedService, SubService {
let name = "Amazon CloudWatch RUM"
let ids = Set([
+ "rum-ap-east-1",
"rum-ap-northeast-1",
"rum-ap-south-2",
"rum-ap-southeast-1",
"rum-ap-southeast-2",
"rum-ap-southeast-4",
+ "rum-ap-southeast-5",
+ "rum-ap-southeast-7",
+ "rum-ca-west-1",
"rum-eu-central-1",
"rum-eu-central-2",
"rum-eu-north-1",
"rum-eu-south-2",
"rum-eu-west-1",
"rum-eu-west-2",
+ "rum-il-central-1",
"rum-me-central-1",
+ "rum-mx-central-1",
"rum-us-east-1",
"rum-us-east-2",
+ "rum-us-gov-east-1",
+ "rum-us-gov-west-1",
"rum-us-west-2"
])
}
@@ -4552,6 +4772,7 @@ final class AmazonCloudWatchSynthetics: AWSNamedService, SubService {
let ids = Set([
"cloudwatchsynthetics-af-south-1",
"cloudwatchsynthetics-ap-east-1",
+ "cloudwatchsynthetics-ap-east-2",
"cloudwatchsynthetics-ap-northeast-1",
"cloudwatchsynthetics-ap-northeast-2",
"cloudwatchsynthetics-ap-northeast-3",
@@ -4562,6 +4783,7 @@ final class AmazonCloudWatchSynthetics: AWSNamedService, SubService {
"cloudwatchsynthetics-ap-southeast-3",
"cloudwatchsynthetics-ap-southeast-4",
"cloudwatchsynthetics-ap-southeast-5",
+ "cloudwatchsynthetics-ap-southeast-6",
"cloudwatchsynthetics-ap-southeast-7",
"cloudwatchsynthetics-ca-central-1",
"cloudwatchsynthetics-ca-west-1",
@@ -4642,6 +4864,7 @@ final class AmazonCognito: AWSNamedService, SubService {
"cognito-ap-southeast-3",
"cognito-ap-southeast-4",
"cognito-ap-southeast-5",
+ "cognito-ap-southeast-7",
"cognito-ca-central-1",
"cognito-ca-west-1",
"cognito-eu-central-1",
@@ -4655,6 +4878,7 @@ final class AmazonCognito: AWSNamedService, SubService {
"cognito-il-central-1",
"cognito-me-central-1",
"cognito-me-south-1",
+ "cognito-mx-central-1",
"cognito-sa-east-1",
"cognito-us-east-1",
"cognito-us-east-2",
@@ -4720,6 +4944,7 @@ final class AmazonDataLifecycleManager: AWSNamedService, SubService {
let ids = Set([
"dlm-af-south-1",
"dlm-ap-east-1",
+ "dlm-ap-east-2",
"dlm-ap-northeast-1",
"dlm-ap-northeast-2",
"dlm-ap-northeast-3",
@@ -4763,6 +4988,7 @@ final class AmazonDataZone: AWSNamedService, SubService {
"datazone-ap-south-1",
"datazone-ap-southeast-1",
"datazone-ap-southeast-2",
+ "datazone-ap-southeast-5",
"datazone-ca-central-1",
"datazone-eu-central-1",
"datazone-eu-north-1",
@@ -4840,11 +5066,13 @@ final class AmazonDocumentDB: AWSNamedService, SubService {
"docdb-ap-southeast-2",
"docdb-ca-central-1",
"docdb-eu-central-1",
+ "docdb-eu-north-1",
"docdb-eu-south-1",
"docdb-eu-south-2",
"docdb-eu-west-1",
"docdb-eu-west-2",
"docdb-eu-west-3",
+ "docdb-il-central-1",
"docdb-me-central-1",
"docdb-sa-east-1",
"docdb-us-east-1",
@@ -4860,6 +5088,7 @@ final class AmazonDynamoDB: AWSNamedService, SubService {
let ids = Set([
"dynamodb-af-south-1",
"dynamodb-ap-east-1",
+ "dynamodb-ap-east-2",
"dynamodb-ap-northeast-1",
"dynamodb-ap-northeast-2",
"dynamodb-ap-northeast-3",
@@ -4870,6 +5099,7 @@ final class AmazonDynamoDB: AWSNamedService, SubService {
"dynamodb-ap-southeast-3",
"dynamodb-ap-southeast-4",
"dynamodb-ap-southeast-5",
+ "dynamodb-ap-southeast-6",
"dynamodb-ap-southeast-7",
"dynamodb-ca-central-1",
"dynamodb-ca-west-1",
@@ -4909,6 +5139,8 @@ final class AmazonEC2InstanceConnect: AWSNamedService, SubService {
"managedssh-ap-southeast-2",
"managedssh-ap-southeast-3",
"managedssh-ap-southeast-4",
+ "managedssh-ap-southeast-5",
+ "managedssh-ap-southeast-7",
"managedssh-ca-central-1",
"managedssh-ca-west-1",
"managedssh-eu-central-1",
@@ -4922,6 +5154,7 @@ final class AmazonEC2InstanceConnect: AWSNamedService, SubService {
"managedssh-il-central-1",
"managedssh-me-central-1",
"managedssh-me-south-1",
+ "managedssh-mx-central-1",
"managedssh-sa-east-1",
"managedssh-us-east-1",
"managedssh-us-east-2",
@@ -4944,14 +5177,18 @@ final class AmazonEMRServerless: AWSNamedService, SubService {
"emrserverless-ap-southeast-1",
"emrserverless-ap-southeast-2",
"emrserverless-ap-southeast-3",
+ "emrserverless-ap-southeast-4",
"emrserverless-ca-central-1",
+ "emrserverless-ca-west-1",
"emrserverless-eu-central-1",
+ "emrserverless-eu-central-2",
"emrserverless-eu-north-1",
"emrserverless-eu-south-1",
"emrserverless-eu-south-2",
"emrserverless-eu-west-1",
"emrserverless-eu-west-2",
"emrserverless-eu-west-3",
+ "emrserverless-il-central-1",
"emrserverless-me-central-1",
"emrserverless-me-south-1",
"emrserverless-sa-east-1",
@@ -4969,6 +5206,7 @@ final class AmazonElastiCache: AWSNamedService, SubService {
let ids = Set([
"elasticache-af-south-1",
"elasticache-ap-east-1",
+ "elasticache-ap-east-2",
"elasticache-ap-northeast-1",
"elasticache-ap-northeast-2",
"elasticache-ap-northeast-3",
@@ -4979,6 +5217,7 @@ final class AmazonElastiCache: AWSNamedService, SubService {
"elasticache-ap-southeast-3",
"elasticache-ap-southeast-4",
"elasticache-ap-southeast-5",
+ "elasticache-ap-southeast-6",
"elasticache-ap-southeast-7",
"elasticache-ca-central-1",
"elasticache-ca-west-1",
@@ -5009,6 +5248,7 @@ final class AmazonElasticComputeCloud: AWSNamedService, SubService {
let ids = Set([
"ec2-af-south-1",
"ec2-ap-east-1",
+ "ec2-ap-east-2",
"ec2-ap-northeast-1",
"ec2-ap-northeast-2",
"ec2-ap-northeast-3",
@@ -5019,6 +5259,7 @@ final class AmazonElasticComputeCloud: AWSNamedService, SubService {
"ec2-ap-southeast-3",
"ec2-ap-southeast-4",
"ec2-ap-southeast-5",
+ "ec2-ap-southeast-6",
"ec2-ap-southeast-7",
"ec2-ca-central-1",
"ec2-ca-west-1",
@@ -5049,6 +5290,7 @@ final class AmazonElasticContainerRegistry: AWSNamedService, SubService {
let ids = Set([
"ecr-af-south-1",
"ecr-ap-east-1",
+ "ecr-ap-east-2",
"ecr-ap-northeast-1",
"ecr-ap-northeast-2",
"ecr-ap-northeast-3",
@@ -5059,6 +5301,7 @@ final class AmazonElasticContainerRegistry: AWSNamedService, SubService {
"ecr-ap-southeast-3",
"ecr-ap-southeast-4",
"ecr-ap-southeast-5",
+ "ecr-ap-southeast-6",
"ecr-ap-southeast-7",
"ecr-ca-central-1",
"ecr-ca-west-1",
@@ -5096,6 +5339,7 @@ final class AmazonElasticContainerService: AWSNamedService, SubService {
let ids = Set([
"ecs-af-south-1",
"ecs-ap-east-1",
+ "ecs-ap-east-2",
"ecs-ap-northeast-1",
"ecs-ap-northeast-2",
"ecs-ap-northeast-3",
@@ -5106,6 +5350,7 @@ final class AmazonElasticContainerService: AWSNamedService, SubService {
"ecs-ap-southeast-3",
"ecs-ap-southeast-4",
"ecs-ap-southeast-5",
+ "ecs-ap-southeast-6",
"ecs-ap-southeast-7",
"ecs-ca-central-1",
"ecs-ca-west-1",
@@ -5136,6 +5381,7 @@ final class AmazonElasticFileSystem: AWSNamedService, SubService {
let ids = Set([
"elasticfilesystem-af-south-1",
"elasticfilesystem-ap-east-1",
+ "elasticfilesystem-ap-east-2",
"elasticfilesystem-ap-northeast-1",
"elasticfilesystem-ap-northeast-2",
"elasticfilesystem-ap-northeast-3",
@@ -5176,6 +5422,7 @@ final class AmazonElasticKubernetesService: AWSNamedService, SubService {
let ids = Set([
"eks-af-south-1",
"eks-ap-east-1",
+ "eks-ap-east-2",
"eks-ap-northeast-1",
"eks-ap-northeast-2",
"eks-ap-northeast-3",
@@ -5186,6 +5433,7 @@ final class AmazonElasticKubernetesService: AWSNamedService, SubService {
"eks-ap-southeast-3",
"eks-ap-southeast-4",
"eks-ap-southeast-5",
+ "eks-ap-southeast-6",
"eks-ap-southeast-7",
"eks-ca-central-1",
"eks-ca-west-1",
@@ -5216,6 +5464,7 @@ final class AmazonElasticLoadBalancing: AWSNamedService, SubService {
let ids = Set([
"elb-af-south-1",
"elb-ap-east-1",
+ "elb-ap-east-2",
"elb-ap-northeast-1",
"elb-ap-northeast-2",
"elb-ap-northeast-3",
@@ -5226,6 +5475,7 @@ final class AmazonElasticLoadBalancing: AWSNamedService, SubService {
"elb-ap-southeast-3",
"elb-ap-southeast-4",
"elb-ap-southeast-5",
+ "elb-ap-southeast-6",
"elb-ap-southeast-7",
"elb-ca-central-1",
"elb-ca-west-1",
@@ -5256,6 +5506,7 @@ final class AmazonElasticMapReduce: AWSNamedService, SubService {
let ids = Set([
"emr-af-south-1",
"emr-ap-east-1",
+ "emr-ap-east-2",
"emr-ap-northeast-1",
"emr-ap-northeast-2",
"emr-ap-northeast-3",
@@ -5266,6 +5517,7 @@ final class AmazonElasticMapReduce: AWSNamedService, SubService {
"emr-ap-southeast-3",
"emr-ap-southeast-4",
"emr-ap-southeast-5",
+ "emr-ap-southeast-6",
"emr-ap-southeast-7",
"emr-ca-central-1",
"emr-ca-west-1",
@@ -5296,6 +5548,7 @@ final class AmazonEventBridge: AWSNamedService, SubService {
let ids = Set([
"events-af-south-1",
"events-ap-east-1",
+ "events-ap-east-2",
"events-ap-northeast-1",
"events-ap-northeast-2",
"events-ap-northeast-3",
@@ -5306,6 +5559,7 @@ final class AmazonEventBridge: AWSNamedService, SubService {
"events-ap-southeast-3",
"events-ap-southeast-4",
"events-ap-southeast-5",
+ "events-ap-southeast-6",
"events-ap-southeast-7",
"events-ca-central-1",
"events-ca-west-1",
@@ -5336,6 +5590,7 @@ final class AmazonEventBridgeScheduler: AWSNamedService, SubService {
let ids = Set([
"scheduler-af-south-1",
"scheduler-ap-east-1",
+ "scheduler-ap-east-2",
"scheduler-ap-northeast-1",
"scheduler-ap-northeast-2",
"scheduler-ap-northeast-3",
@@ -5345,7 +5600,11 @@ final class AmazonEventBridgeScheduler: AWSNamedService, SubService {
"scheduler-ap-southeast-2",
"scheduler-ap-southeast-3",
"scheduler-ap-southeast-4",
+ "scheduler-ap-southeast-5",
+ "scheduler-ap-southeast-6",
+ "scheduler-ap-southeast-7",
"scheduler-ca-central-1",
+ "scheduler-ca-west-1",
"scheduler-eu-central-1",
"scheduler-eu-central-2",
"scheduler-eu-north-1",
@@ -5354,11 +5613,15 @@ final class AmazonEventBridgeScheduler: AWSNamedService, SubService {
"scheduler-eu-west-1",
"scheduler-eu-west-2",
"scheduler-eu-west-3",
+ "scheduler-il-central-1",
"scheduler-me-central-1",
"scheduler-me-south-1",
+ "scheduler-mx-central-1",
"scheduler-sa-east-1",
"scheduler-us-east-1",
"scheduler-us-east-2",
+ "scheduler-us-gov-east-1",
+ "scheduler-us-gov-west-1",
"scheduler-us-west-1",
"scheduler-us-west-2"
])
@@ -5369,6 +5632,7 @@ final class AmazonFSx: AWSNamedService, SubService {
let ids = Set([
"fsx-af-south-1",
"fsx-ap-east-1",
+ "fsx-ap-east-2",
"fsx-ap-northeast-1",
"fsx-ap-northeast-2",
"fsx-ap-northeast-3",
@@ -5379,6 +5643,7 @@ final class AmazonFSx: AWSNamedService, SubService {
"fsx-ap-southeast-3",
"fsx-ap-southeast-4",
"fsx-ap-southeast-5",
+ "fsx-ap-southeast-7",
"fsx-ca-central-1",
"fsx-ca-west-1",
"fsx-eu-central-1",
@@ -5392,6 +5657,7 @@ final class AmazonFSx: AWSNamedService, SubService {
"fsx-il-central-1",
"fsx-me-central-1",
"fsx-me-south-1",
+ "fsx-mx-central-1",
"fsx-sa-east-1",
"fsx-us-east-1",
"fsx-us-east-2",
@@ -5481,6 +5747,8 @@ final class AmazonGameLiftServers: AWSNamedService, SubService {
"gamelift-ap-south-1",
"gamelift-ap-southeast-1",
"gamelift-ap-southeast-2",
+ "gamelift-ap-southeast-5",
+ "gamelift-ap-southeast-7",
"gamelift-ca-central-1",
"gamelift-eu-central-1",
"gamelift-eu-north-1",
@@ -5512,6 +5780,7 @@ final class AmazonGlacier: AWSNamedService, SubService {
let ids = Set([
"glacier-af-south-1",
"glacier-ap-east-1",
+ "glacier-ap-east-2",
"glacier-ap-northeast-1",
"glacier-ap-northeast-2",
"glacier-ap-northeast-3",
@@ -5521,6 +5790,7 @@ final class AmazonGlacier: AWSNamedService, SubService {
"glacier-ap-southeast-2",
"glacier-ap-southeast-3",
"glacier-ap-southeast-4",
+ "glacier-ap-southeast-6",
"glacier-ca-central-1",
"glacier-ca-west-1",
"glacier-eu-central-1",
@@ -5549,6 +5819,7 @@ final class AmazonGuardDuty: AWSNamedService, SubService {
let ids = Set([
"guardduty-af-south-1",
"guardduty-ap-east-1",
+ "guardduty-ap-east-2",
"guardduty-ap-northeast-1",
"guardduty-ap-northeast-2",
"guardduty-ap-northeast-3",
@@ -5559,6 +5830,7 @@ final class AmazonGuardDuty: AWSNamedService, SubService {
"guardduty-ap-southeast-3",
"guardduty-ap-southeast-4",
"guardduty-ap-southeast-5",
+ "guardduty-ap-southeast-7",
"guardduty-ca-central-1",
"guardduty-ca-west-1",
"guardduty-eu-central-1",
@@ -5572,6 +5844,7 @@ final class AmazonGuardDuty: AWSNamedService, SubService {
"guardduty-il-central-1",
"guardduty-me-central-1",
"guardduty-me-south-1",
+ "guardduty-mx-central-1",
"guardduty-sa-east-1",
"guardduty-us-east-1",
"guardduty-us-east-2",
@@ -5591,18 +5864,27 @@ final class AmazonInspector: AWSNamedService, SubService {
"inspector-ap-northeast-2",
"inspector-ap-northeast-3",
"inspector-ap-south-1",
+ "inspector-ap-south-2",
"inspector-ap-southeast-1",
"inspector-ap-southeast-2",
"inspector-ap-southeast-3",
+ "inspector-ap-southeast-4",
+ "inspector-ap-southeast-5",
+ "inspector-ap-southeast-7",
"inspector-ca-central-1",
+ "inspector-ca-west-1",
"inspector-eu-central-1",
"inspector-eu-central-2",
"inspector-eu-north-1",
"inspector-eu-south-1",
+ "inspector-eu-south-2",
"inspector-eu-west-1",
"inspector-eu-west-2",
"inspector-eu-west-3",
+ "inspector-il-central-1",
+ "inspector-me-central-1",
"inspector-me-south-1",
+ "inspector-mx-central-1",
"inspector-sa-east-1",
"inspector-us-east-1",
"inspector-us-east-2",
@@ -5694,6 +5976,7 @@ final class AmazonKinesisDataStreams: AWSNamedService, SubService {
let ids = Set([
"kinesis-af-south-1",
"kinesis-ap-east-1",
+ "kinesis-ap-east-2",
"kinesis-ap-northeast-1",
"kinesis-ap-northeast-2",
"kinesis-ap-northeast-3",
@@ -5704,6 +5987,7 @@ final class AmazonKinesisDataStreams: AWSNamedService, SubService {
"kinesis-ap-southeast-3",
"kinesis-ap-southeast-4",
"kinesis-ap-southeast-5",
+ "kinesis-ap-southeast-6",
"kinesis-ap-southeast-7",
"kinesis-ca-central-1",
"kinesis-ca-west-1",
@@ -5734,6 +6018,7 @@ final class AmazonKinesisFirehose: AWSNamedService, SubService {
let ids = Set([
"firehose-af-south-1",
"firehose-ap-east-1",
+ "firehose-ap-east-2",
"firehose-ap-northeast-1",
"firehose-ap-northeast-2",
"firehose-ap-northeast-3",
@@ -5744,6 +6029,7 @@ final class AmazonKinesisFirehose: AWSNamedService, SubService {
"firehose-ap-southeast-3",
"firehose-ap-southeast-4",
"firehose-ap-southeast-5",
+ "firehose-ap-southeast-6",
"firehose-ap-southeast-7",
"firehose-ca-central-1",
"firehose-ca-west-1",
@@ -5779,11 +6065,14 @@ final class AmazonKinesisVideoStreams: AWSNamedService, SubService {
"acuity-ap-south-1",
"acuity-ap-southeast-1",
"acuity-ap-southeast-2",
+ "acuity-ap-southeast-5",
"acuity-ca-central-1",
"acuity-eu-central-1",
+ "acuity-eu-south-2",
"acuity-eu-west-1",
"acuity-eu-west-2",
"acuity-eu-west-3",
+ "acuity-me-south-1",
"acuity-sa-east-1",
"acuity-us-east-1",
"acuity-us-east-2",
@@ -5819,6 +6108,7 @@ final class AmazonLightsail: AWSNamedService, SubService {
"lightsail-ap-south-1",
"lightsail-ap-southeast-1",
"lightsail-ap-southeast-2",
+ "lightsail-ap-southeast-3",
"lightsail-ca-central-1",
"lightsail-eu-central-1",
"lightsail-eu-north-1",
@@ -5895,6 +6185,7 @@ final class AmazonMQ: AWSNamedService, SubService {
let ids = Set([
"mq-af-south-1",
"mq-ap-east-1",
+ "mq-ap-east-2",
"mq-ap-northeast-1",
"mq-ap-northeast-2",
"mq-ap-northeast-3",
@@ -5905,6 +6196,7 @@ final class AmazonMQ: AWSNamedService, SubService {
"mq-ap-southeast-3",
"mq-ap-southeast-4",
"mq-ap-southeast-5",
+ "mq-ap-southeast-7",
"mq-ca-central-1",
"mq-ca-west-1",
"mq-eu-central-1",
@@ -5918,6 +6210,7 @@ final class AmazonMQ: AWSNamedService, SubService {
"mq-il-central-1",
"mq-me-central-1",
"mq-me-south-1",
+ "mq-mx-central-1",
"mq-sa-east-1",
"mq-us-east-1",
"mq-us-east-2",
@@ -5999,6 +6292,7 @@ final class AmazonManagedServiceForApacheFlink: AWSNamedService, SubService {
let ids = Set([
"kinesisanalytics-af-south-1",
"kinesisanalytics-ap-east-1",
+ "kinesisanalytics-ap-east-2",
"kinesisanalytics-ap-northeast-1",
"kinesisanalytics-ap-northeast-2",
"kinesisanalytics-ap-northeast-3",
@@ -6009,6 +6303,7 @@ final class AmazonManagedServiceForApacheFlink: AWSNamedService, SubService {
"kinesisanalytics-ap-southeast-3",
"kinesisanalytics-ap-southeast-4",
"kinesisanalytics-ap-southeast-5",
+ "kinesisanalytics-ap-southeast-7",
"kinesisanalytics-ca-central-1",
"kinesisanalytics-ca-west-1",
"kinesisanalytics-eu-central-1",
@@ -6022,6 +6317,7 @@ final class AmazonManagedServiceForApacheFlink: AWSNamedService, SubService {
"kinesisanalytics-il-central-1",
"kinesisanalytics-me-central-1",
"kinesisanalytics-me-south-1",
+ "kinesisanalytics-mx-central-1",
"kinesisanalytics-sa-east-1",
"kinesisanalytics-us-east-1",
"kinesisanalytics-us-east-2",
@@ -6052,6 +6348,7 @@ final class AmazonManagedStreamingForApacheKafka: AWSNamedService, SubService {
let ids = Set([
"kafka-af-south-1",
"kafka-ap-east-1",
+ "kafka-ap-east-2",
"kafka-ap-northeast-1",
"kafka-ap-northeast-2",
"kafka-ap-northeast-3",
@@ -6062,6 +6359,7 @@ final class AmazonManagedStreamingForApacheKafka: AWSNamedService, SubService {
"kafka-ap-southeast-3",
"kafka-ap-southeast-4",
"kafka-ap-southeast-5",
+ "kafka-ap-southeast-7",
"kafka-ca-central-1",
"kafka-ca-west-1",
"kafka-eu-central-1",
@@ -6075,6 +6373,7 @@ final class AmazonManagedStreamingForApacheKafka: AWSNamedService, SubService {
"kafka-il-central-1",
"kafka-me-central-1",
"kafka-me-south-1",
+ "kafka-mx-central-1",
"kafka-sa-east-1",
"kafka-us-east-1",
"kafka-us-east-2",
@@ -6099,6 +6398,7 @@ final class AmazonManagedWorkflowsForApacheAirflow: AWSNamedService, SubService
"airflow-ap-southeast-2",
"airflow-ap-southeast-3",
"airflow-ap-southeast-4",
+ "airflow-ap-southeast-5",
"airflow-ca-central-1",
"airflow-ca-west-1",
"airflow-eu-central-1",
@@ -6168,8 +6468,10 @@ final class AmazonNeptune: AWSNamedService, SubService {
"neptune-db-ap-southeast-1",
"neptune-db-ap-southeast-2",
"neptune-db-ap-southeast-3",
+ "neptune-db-ap-southeast-4",
"neptune-db-ap-southeast-5",
"neptune-db-ca-central-1",
+ "neptune-db-ca-west-1",
"neptune-db-eu-central-1",
"neptune-db-eu-north-1",
"neptune-db-eu-south-2",
@@ -6218,6 +6520,7 @@ final class AmazonOpenSearchService: AWSNamedService, SubService {
let ids = Set([
"elasticsearch-af-south-1",
"elasticsearch-ap-east-1",
+ "elasticsearch-ap-east-2",
"elasticsearch-ap-northeast-1",
"elasticsearch-ap-northeast-2",
"elasticsearch-ap-northeast-3",
@@ -6228,6 +6531,7 @@ final class AmazonOpenSearchService: AWSNamedService, SubService {
"elasticsearch-ap-southeast-3",
"elasticsearch-ap-southeast-4",
"elasticsearch-ap-southeast-5",
+ "elasticsearch-ap-southeast-6",
"elasticsearch-ap-southeast-7",
"elasticsearch-ca-central-1",
"elasticsearch-ca-west-1",
@@ -6365,6 +6669,7 @@ final class AmazonRedshift: AWSNamedService, SubService {
let ids = Set([
"redshift-af-south-1",
"redshift-ap-east-1",
+ "redshift-ap-east-2",
"redshift-ap-northeast-1",
"redshift-ap-northeast-2",
"redshift-ap-northeast-3",
@@ -6375,6 +6680,7 @@ final class AmazonRedshift: AWSNamedService, SubService {
"redshift-ap-southeast-3",
"redshift-ap-southeast-4",
"redshift-ap-southeast-5",
+ "redshift-ap-southeast-6",
"redshift-ap-southeast-7",
"redshift-ca-central-1",
"redshift-ca-west-1",
@@ -6427,6 +6733,7 @@ final class AmazonRelationalDatabaseService: AWSNamedService, SubService {
let ids = Set([
"rds-af-south-1",
"rds-ap-east-1",
+ "rds-ap-east-2",
"rds-ap-northeast-1",
"rds-ap-northeast-2",
"rds-ap-northeast-3",
@@ -6437,6 +6744,7 @@ final class AmazonRelationalDatabaseService: AWSNamedService, SubService {
"rds-ap-southeast-3",
"rds-ap-southeast-4",
"rds-ap-southeast-5",
+ "rds-ap-southeast-6",
"rds-ap-southeast-7",
"rds-ca-central-1",
"rds-ca-west-1",
@@ -6490,6 +6798,7 @@ final class AmazonRoute53PrivateDNS: AWSNamedService, SubService {
let ids = Set([
"route53privatedns-af-south-1",
"route53privatedns-ap-east-1",
+ "route53privatedns-ap-east-2",
"route53privatedns-ap-northeast-1",
"route53privatedns-ap-northeast-2",
"route53privatedns-ap-northeast-3",
@@ -6500,6 +6809,7 @@ final class AmazonRoute53PrivateDNS: AWSNamedService, SubService {
"route53privatedns-ap-southeast-3",
"route53privatedns-ap-southeast-4",
"route53privatedns-ap-southeast-5",
+ "route53privatedns-ap-southeast-6",
"route53privatedns-ap-southeast-7",
"route53privatedns-ca-central-1",
"route53privatedns-ca-west-1",
@@ -6530,6 +6840,7 @@ final class AmazonRoute53Resolver: AWSNamedService, SubService {
let ids = Set([
"route53resolver-af-south-1",
"route53resolver-ap-east-1",
+ "route53resolver-ap-east-2",
"route53resolver-ap-northeast-1",
"route53resolver-ap-northeast-2",
"route53resolver-ap-northeast-3",
@@ -6540,6 +6851,7 @@ final class AmazonRoute53Resolver: AWSNamedService, SubService {
"route53resolver-ap-southeast-3",
"route53resolver-ap-southeast-4",
"route53resolver-ap-southeast-5",
+ "route53resolver-ap-southeast-6",
"route53resolver-ap-southeast-7",
"route53resolver-ca-central-1",
"route53resolver-ca-west-1",
@@ -6606,6 +6918,7 @@ final class AmazonSageMaker: AWSNamedService, SubService {
let ids = Set([
"sagemaker-af-south-1",
"sagemaker-ap-east-1",
+ "sagemaker-ap-east-2",
"sagemaker-ap-northeast-1",
"sagemaker-ap-northeast-2",
"sagemaker-ap-northeast-3",
@@ -6616,6 +6929,7 @@ final class AmazonSageMaker: AWSNamedService, SubService {
"sagemaker-ap-southeast-3",
"sagemaker-ap-southeast-4",
"sagemaker-ap-southeast-5",
+ "sagemaker-ap-southeast-7",
"sagemaker-ca-central-1",
"sagemaker-ca-west-1",
"sagemaker-eu-central-1",
@@ -6629,6 +6943,7 @@ final class AmazonSageMaker: AWSNamedService, SubService {
"sagemaker-il-central-1",
"sagemaker-me-central-1",
"sagemaker-me-south-1",
+ "sagemaker-mx-central-1",
"sagemaker-sa-east-1",
"sagemaker-us-east-1",
"sagemaker-us-east-2",
@@ -6672,17 +6987,20 @@ final class AmazonSimpleEmailService: AWSNamedService, SubService {
"ses-ap-northeast-2",
"ses-ap-northeast-3",
"ses-ap-south-1",
+ "ses-ap-south-2",
"ses-ap-southeast-1",
"ses-ap-southeast-2",
"ses-ap-southeast-3",
"ses-ca-central-1",
"ses-eu-central-1",
+ "ses-eu-central-2",
"ses-eu-north-1",
"ses-eu-south-1",
"ses-eu-west-1",
"ses-eu-west-2",
"ses-eu-west-3",
"ses-il-central-1",
+ "ses-me-central-1",
"ses-me-south-1",
"ses-sa-east-1",
"ses-us-east-1",
@@ -6699,6 +7017,7 @@ final class AmazonSimpleNotificationService: AWSNamedService, SubService {
let ids = Set([
"sns-af-south-1",
"sns-ap-east-1",
+ "sns-ap-east-2",
"sns-ap-northeast-1",
"sns-ap-northeast-2",
"sns-ap-northeast-3",
@@ -6709,6 +7028,7 @@ final class AmazonSimpleNotificationService: AWSNamedService, SubService {
"sns-ap-southeast-3",
"sns-ap-southeast-4",
"sns-ap-southeast-5",
+ "sns-ap-southeast-6",
"sns-ap-southeast-7",
"sns-ca-central-1",
"sns-ca-west-1",
@@ -6739,6 +7059,7 @@ final class AmazonSimpleQueueService: AWSNamedService, SubService {
let ids = Set([
"sqs-af-south-1",
"sqs-ap-east-1",
+ "sqs-ap-east-2",
"sqs-ap-northeast-1",
"sqs-ap-northeast-2",
"sqs-ap-northeast-3",
@@ -6749,6 +7070,7 @@ final class AmazonSimpleQueueService: AWSNamedService, SubService {
"sqs-ap-southeast-3",
"sqs-ap-southeast-4",
"sqs-ap-southeast-5",
+ "sqs-ap-southeast-6",
"sqs-ap-southeast-7",
"sqs-ca-central-1",
"sqs-ca-west-1",
@@ -6779,6 +7101,7 @@ final class AmazonSimpleStorageService: AWSNamedService, SubService {
let ids = Set([
"s3-af-south-1",
"s3-ap-east-1",
+ "s3-ap-east-2",
"s3-ap-northeast-1",
"s3-ap-northeast-2",
"s3-ap-northeast-3",
@@ -6789,6 +7112,7 @@ final class AmazonSimpleStorageService: AWSNamedService, SubService {
"s3-ap-southeast-3",
"s3-ap-southeast-4",
"s3-ap-southeast-5",
+ "s3-ap-southeast-6",
"s3-ap-southeast-7",
"s3-ca-central-1",
"s3-ca-west-1",
@@ -6819,6 +7143,7 @@ final class AmazonSimpleWorkflowService: AWSNamedService, SubService {
let ids = Set([
"swf-af-south-1",
"swf-ap-east-1",
+ "swf-ap-east-2",
"swf-ap-northeast-1",
"swf-ap-northeast-2",
"swf-ap-northeast-3",
@@ -6829,6 +7154,7 @@ final class AmazonSimpleWorkflowService: AWSNamedService, SubService {
"swf-ap-southeast-3",
"swf-ap-southeast-4",
"swf-ap-southeast-5",
+ "swf-ap-southeast-6",
"swf-ap-southeast-7",
"swf-ca-central-1",
"swf-ca-west-1",
@@ -6960,6 +7286,7 @@ final class AmazonVPCIPAddressManager: AWSNamedService, SubService {
let ids = Set([
"ipam-af-south-1",
"ipam-ap-east-1",
+ "ipam-ap-east-2",
"ipam-ap-northeast-1",
"ipam-ap-northeast-2",
"ipam-ap-northeast-3",
@@ -6970,6 +7297,7 @@ final class AmazonVPCIPAddressManager: AWSNamedService, SubService {
"ipam-ap-southeast-3",
"ipam-ap-southeast-4",
"ipam-ap-southeast-5",
+ "ipam-ap-southeast-6",
"ipam-ap-southeast-7",
"ipam-ca-central-1",
"ipam-ca-west-1",
@@ -7034,6 +7362,7 @@ final class AmazonVirtualPrivateCloud: AWSNamedService, SubService {
let ids = Set([
"vpc-af-south-1",
"vpc-ap-east-1",
+ "vpc-ap-east-2",
"vpc-ap-northeast-1",
"vpc-ap-northeast-2",
"vpc-ap-northeast-3",
@@ -7044,6 +7373,7 @@ final class AmazonVirtualPrivateCloud: AWSNamedService, SubService {
"vpc-ap-southeast-3",
"vpc-ap-southeast-4",
"vpc-ap-southeast-5",
+ "vpc-ap-southeast-6",
"vpc-ap-southeast-7",
"vpc-ca-central-1",
"vpc-ca-west-1",
@@ -7102,6 +7432,7 @@ final class AmazonWorkSpaces: AWSNamedService, SubService {
"workspaces-eu-central-1",
"workspaces-eu-west-1",
"workspaces-eu-west-2",
+ "workspaces-eu-west-3",
"workspaces-il-central-1",
"workspaces-sa-east-1",
"workspaces-us-east-1",
diff --git a/stts/Services/Generated/AdobeServices.swift b/stts/Services/Generated/AdobeServices.swift
index c16da4e..cc20cab 100644
--- a/stts/Services/Generated/AdobeServices.swift
+++ b/stts/Services/Generated/AdobeServices.swift
@@ -88,7 +88,7 @@ final class AdobeCommerce: AdobeExperienceCloud, SubService {
let id = "503473"
}
-final class AdobeConnect: AdobeExperienceCloud, SubService {
+final class AdobeConnect: AdobeServices, SubService {
let name = "Adobe Connect"
let id = "503474"
}
@@ -260,6 +260,11 @@ final class AdobeInDesign: AdobeCreativeCloud, SubService {
let id = "503502"
}
+final class AdobeInDesignAPI: AdobeCreativeCloud, SubService {
+ let name = "Adobe InDesign API"
+ let id = "572928"
+}
+
final class AdobeIntelligentServices: AdobeExperienceCloud, SubService {
let name = "Adobe Intelligent Services"
let id = "503480"
diff --git a/stts/Services/Generated/FirebaseServices.swift b/stts/Services/Generated/FirebaseServices.swift
index 4ec90bb..bc24dac 100644
--- a/stts/Services/Generated/FirebaseServices.swift
+++ b/stts/Services/Generated/FirebaseServices.swift
@@ -51,6 +51,14 @@ final class FirebaseExtensions: FirebaseService, SubService {
let name = "Firebase Extensions"
}
+final class FirebaseAILogic: FirebaseService, SubService {
+ let name = "Firebase AI Logic"
+}
+
+final class FirebaseStudio: FirebaseService, SubService {
+ let name = "Firebase Studio"
+}
+
final class FirebaseGeminiInFirebase: FirebaseService, SubService {
let name = "Firebase Gemini in Firebase"
}
@@ -82,7 +90,3 @@ final class FirebaseRemoteConfig: FirebaseService, SubService {
final class FirebaseTestLab: FirebaseService, SubService {
let name = "Firebase Test Lab"
}
-
-final class FirebaseVertexAIInFirebase: FirebaseService, SubService {
- let name = "Firebase Vertex AI in Firebase"
-}
diff --git a/stts/Services/Generated/GoogleCloudPlatformServices.swift b/stts/Services/Generated/GoogleCloudPlatformServices.swift
index 75b43b9..4017d48 100644
--- a/stts/Services/Generated/GoogleCloudPlatformServices.swift
+++ b/stts/Services/Generated/GoogleCloudPlatformServices.swift
@@ -73,11 +73,6 @@ final class GoogleApplicationIntegration: GoogleCloudPlatform, SubService {
let dashboardName = "Application Integration"
}
-final class GoogleAppSheet: GoogleCloudPlatform, SubService {
- let name = "Google AppSheet"
- let dashboardName = "AppSheet"
-}
-
final class GoogleArtifactRegistry: GoogleCloudPlatform, SubService {
let name = "Google Artifact Registry"
let dashboardName = "Artifact Registry"
@@ -153,16 +148,6 @@ final class GoogleCertificateAuthorityService: GoogleCloudPlatform, SubService {
let dashboardName = "Certificate Authority Service"
}
-final class GoogleChronicleSecurity: GoogleCloudPlatform, SubService {
- let name = "Google Chronicle Security"
- let dashboardName = "Chronicle Security"
-}
-
-final class GoogleChronicleSOAR: GoogleCloudPlatform, SubService {
- let name = "Google Chronicle SOAR"
- let dashboardName = "Chronicle SOAR"
-}
-
final class GoogleCloudArmor: GoogleCloudPlatform, SubService {
let name = "Google Cloud Armor"
let dashboardName = "Cloud Armor"
@@ -383,6 +368,11 @@ final class GoogleDatastream: GoogleCloudPlatform, SubService {
let dashboardName = "Datastream"
}
+final class GoogleDeveloperConnect: GoogleCloudPlatform, SubService {
+ let name = "Google Developer Connect"
+ let dashboardName = "Developer Connect"
+}
+
final class GoogleDialogflowCX: GoogleCloudPlatform, SubService {
let name = "Google Dialogflow CX"
let dashboardName = "Dialogflow CX"
@@ -398,26 +388,11 @@ final class GoogleDocumentAI: GoogleCloudPlatform, SubService {
let dashboardName = "Document AI"
}
-final class GoogleDocumentAIWarehouse: GoogleCloudPlatform, SubService {
- let name = "Google Document AI Warehouse"
- let dashboardName = "Document AI Warehouse"
-}
-
final class GoogleEventarc: GoogleCloudPlatform, SubService {
let name = "Google Eventarc"
let dashboardName = "Eventarc"
}
-final class GoogleFirebaseAuthentication: GoogleCloudPlatform, SubService {
- let name = "Google Firebase Authentication"
- let dashboardName = "Firebase Authentication"
-}
-
-final class GoogleFirebaseTestLab: GoogleCloudPlatform, SubService {
- let name = "Google Firebase Test Lab"
- let dashboardName = "Firebase Test Lab"
-}
-
final class GoogleGKEFleetManagement: GoogleCloudPlatform, SubService {
let name = "Google GKE fleet management"
let dashboardName = "GKE fleet management"
@@ -588,9 +563,9 @@ final class GoogleKeyAccessJustifications: GoogleCloudPlatform, SubService {
let dashboardName = "Key Access Justifications"
}
-final class GoogleLendingDocAI: GoogleCloudPlatform, SubService {
- let name = "Google Lending DocAI"
- let dashboardName = "Lending DocAI"
+final class GoogleLookerGoogleCloudCore: GoogleCloudPlatform, SubService {
+ let name = "Google Looker (Google Cloud core)"
+ let dashboardName = "Looker (Google Cloud core)"
}
final class GoogleLookerStudio: GoogleCloudPlatform, SubService {
@@ -608,31 +583,6 @@ final class GoogleManagedServiceForMicrosoftActiveDirectoryAD: GoogleCloudPlatfo
let dashboardName = "Managed Service for Microsoft Active Directory (AD)"
}
-final class GoogleMandiantAttackSurfaceManagement: GoogleCloudPlatform, SubService {
- let name = "Google Mandiant Attack Surface Management"
- let dashboardName = "Mandiant Attack Surface Management"
-}
-
-final class GoogleMandiantHuntForChronicle: GoogleCloudPlatform, SubService {
- let name = "Google Mandiant Hunt for Chronicle"
- let dashboardName = "Mandiant Hunt for Chronicle"
-}
-
-final class GoogleMandiantManagedDefense: GoogleCloudPlatform, SubService {
- let name = "Google Mandiant Managed Defense"
- let dashboardName = "Mandiant Managed Defense"
-}
-
-final class GoogleMandiantSecurityValidation: GoogleCloudPlatform, SubService {
- let name = "Google Mandiant Security Validation"
- let dashboardName = "Mandiant Security Validation"
-}
-
-final class GoogleMandiantThreatIntelligence: GoogleCloudPlatform, SubService {
- let name = "Google Mandiant Threat Intelligence"
- let dashboardName = "Mandiant Threat Intelligence"
-}
-
final class GoogleMediaCDN: GoogleCloudPlatform, SubService {
let name = "Google Media CDN"
let dashboardName = "Media CDN"
@@ -653,6 +603,11 @@ final class GoogleMemorystoreForRedisCluster: GoogleCloudPlatform, SubService {
let dashboardName = "Memorystore for Redis Cluster"
}
+final class GoogleMemorystoreForValkey: GoogleCloudPlatform, SubService {
+ let name = "Google Memorystore for Valkey"
+ let dashboardName = "Memorystore for Valkey"
+}
+
final class GoogleMigrateToVirtualMachines: GoogleCloudPlatform, SubService {
let name = "Google Migrate to Virtual Machines"
let dashboardName = "Migrate to Virtual Machines"
@@ -668,9 +623,9 @@ final class GoogleNetworkIntelligenceCenter: GoogleCloudPlatform, SubService {
let dashboardName = "Network Intelligence Center"
}
-final class GoogleNetworkTelemetry: GoogleCloudPlatform, SubService {
- let name = "Google Network Telemetry"
- let dashboardName = "Network Telemetry"
+final class GoogleNetworkSecurityIntegration: GoogleCloudPlatform, SubService {
+ let name = "Google Network Security Integration"
+ let dashboardName = "Network Security Integration"
}
final class GoogleParallelstore: GoogleCloudPlatform, SubService {
@@ -693,9 +648,9 @@ final class GooglePrivateServiceConnect: GoogleCloudPlatform, SubService {
let dashboardName = "Private Service Connect"
}
-final class GoogleProcurementDocAI: GoogleCloudPlatform, SubService {
- let name = "Google Procurement DocAI"
- let dashboardName = "Procurement DocAI"
+final class GoogleProvisionedThroughput: GoogleCloudPlatform, SubService {
+ let name = "Google Provisioned Throughput"
+ let dashboardName = "Provisioned Throughput"
}
final class GooglePubSubLite: GoogleCloudPlatform, SubService {
@@ -738,6 +693,11 @@ final class GoogleServiceDirectory: GoogleCloudPlatform, SubService {
let dashboardName = "Service Directory"
}
+final class GoogleServiceExtensions: GoogleCloudPlatform, SubService {
+ let name = "Google Service Extensions"
+ let dashboardName = "Service Extensions"
+}
+
final class GoogleSpectrumAccessSystem: GoogleCloudPlatform, SubService {
let name = "Google Spectrum Access System"
let dashboardName = "Spectrum Access System"
@@ -873,6 +833,11 @@ final class GoogleVertexImagenAPI: GoogleCloudPlatform, SubService {
let dashboardName = "Vertex Imagen API"
}
+final class GoogleVertexVeoAPI: GoogleCloudPlatform, SubService {
+ let name = "Google Vertex Veo API"
+ let dashboardName = "Vertex Veo API"
+}
+
final class GoogleVideoIntelligenceAPI: GoogleCloudPlatform, SubService {
let name = "Google Video Intelligence API"
let dashboardName = "Video Intelligence API"
diff --git a/stts/Services/Generated/SalesforceProducts.swift b/stts/Services/Generated/SalesforceProducts.swift
index ff3aa26..d63fe3f 100644
--- a/stts/Services/Generated/SalesforceProducts.swift
+++ b/stts/Services/Generated/SalesforceProducts.swift
@@ -78,6 +78,33 @@ final class DatoramaNA: Datorama, SubService {
let location = "NA"
}
+final class HerokuAll: Heroku, ServiceCategory {
+ let categoryName = "Heroku"
+ let subServiceSuperclass: AnyObject.Type = BaseHeroku.self
+
+ let name = "Heroku (All Regions)"
+ let key = "Heroku"
+ let location = "*"
+}
+
+final class HerokuAPAC: Heroku, SubService {
+ let name = "Heroku (APAC)"
+ let key = "Heroku"
+ let location = "APAC"
+}
+
+final class HerokuEMEA: Heroku, SubService {
+ let name = "Heroku (EMEA)"
+ let key = "Heroku"
+ let location = "EMEA"
+}
+
+final class HerokuNA: Heroku, SubService {
+ let name = "Heroku (NA)"
+ let key = "Heroku"
+ let location = "NA"
+}
+
final class MCAccountEngagementAll: MCAccountEngagement, ServiceCategory {
let categoryName = "MCAccountEngagement"
let subServiceSuperclass: AnyObject.Type = BaseMCAccountEngagement.self
@@ -201,6 +228,27 @@ final class SalesforceServicesNA: SalesforceServices, SubService {
let location = "NA"
}
+final class SpiffAll: Spiff, ServiceCategory {
+ let categoryName = "Spiff"
+ let subServiceSuperclass: AnyObject.Type = BaseSpiff.self
+
+ let name = "Spiff (All Regions)"
+ let key = "Spiff"
+ let location = "*"
+}
+
+final class SpiffEMEA: Spiff, SubService {
+ let name = "Spiff (EMEA)"
+ let key = "Spiff"
+ let location = "EMEA"
+}
+
+final class SpiffNA: Spiff, SubService {
+ let name = "Spiff (NA)"
+ let key = "Spiff"
+ let location = "NA"
+}
+
final class TableauAll: Tableau, ServiceCategory {
let categoryName = "Tableau"
let subServiceSuperclass: AnyObject.Type = BaseTableau.self
diff --git a/stts/Services/Heroku.swift b/stts/Services/Heroku.swift
deleted file mode 100644
index a4b4af5..0000000
--- a/stts/Services/Heroku.swift
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Heroku.swift
-// stts
-//
-
-import Foundation
-
-private struct HerokuStatusResponse: Codable {
- struct HerokuStatus: Codable {
- enum CodingKeys: String, CodingKey {
- case production = "Production"
- case development = "Development"
- }
-
- enum Status: String, Codable {
- case green
- case red
- case yellow
- case blue
-
- var status: ServiceStatus {
- switch self {
- case .green: return .good
- case .red: return .major
- case .yellow: return .minor
- case .blue: return .maintenance
- }
- }
- }
-
- let production: Status
- let development: Status
- }
-
- struct HerokuIssue: Codable {
- let title: String
- }
-
- let status: HerokuStatus
- let issues: [HerokuIssue]
-}
-
-class Heroku: Service {
- let url = URL(string: "https://status.heroku.com")!
-
- override func updateStatus(callback: @escaping (BaseService) -> Void) {
- let statusURL = URL(string: "https://status.heroku.com/api/v3/current-status")!
-
- loadData(with: statusURL) { [weak self] data, _, error in
- guard let strongSelf = self else { return }
- defer { callback(strongSelf) }
- guard let data = data else { return strongSelf._fail(error) }
-
- guard let statusResponse = try? JSONDecoder().decode(HerokuStatusResponse.self, from: data) else {
- return strongSelf._fail("Unexpected data")
- }
-
- let production = statusResponse.status.production
- let development = statusResponse.status.development
-
- guard let max = [production, development].max(by: { $0.status < $1.status }) else {
- // This will never happen
- return strongSelf._fail("Unexpected error")
- }
-
- let status = max.status
-
- // Prefer "production" status text except when it's green
- let representedStatus = production == .green ? development : production
- let statusText = representedStatus.rawValue.capitalized
-
- let message: String
- switch max {
- case .green:
- message = statusText
- default:
- // Get the title of the current issue if any
- message = statusResponse.issues.first?.title ?? statusText
- }
-
- strongSelf.statusDescription = ServiceStatusDescription(status: status, message: message)
- }
- }
-}
diff --git a/stts/Services/IncidentIO/Brevo.swift b/stts/Services/IncidentIO/Brevo.swift
new file mode 100644
index 0000000..855f330
--- /dev/null
+++ b/stts/Services/IncidentIO/Brevo.swift
@@ -0,0 +1,10 @@
+//
+// Brevo.swift
+// stts
+//
+
+import Foundation
+
+final class Brevo: IncidentIOService {
+ let url = URL(string: "https://status.brevo.com")!
+}
diff --git a/stts/Services/StatusPage/HashiCorp.swift b/stts/Services/IncidentIO/HashiCorp.swift
similarity index 58%
rename from stts/Services/StatusPage/HashiCorp.swift
rename to stts/Services/IncidentIO/HashiCorp.swift
index caf5964..819afd1 100644
--- a/stts/Services/StatusPage/HashiCorp.swift
+++ b/stts/Services/IncidentIO/HashiCorp.swift
@@ -5,7 +5,6 @@
import Foundation
-final class HashiCorp: StatusPageService {
+final class HashiCorp: IncidentIOService {
let url = URL(string: "https://status.hashicorp.com")!
- let statusPageID = "pdrzb3d64wsj"
}
diff --git a/stts/Services/IncidentIO/Loom.swift b/stts/Services/IncidentIO/Loom.swift
deleted file mode 100644
index 0e4435d..0000000
--- a/stts/Services/IncidentIO/Loom.swift
+++ /dev/null
@@ -1,10 +0,0 @@
-//
-// Loom.swift
-// stts
-//
-
-import Foundation
-
-final class Loom: IncidentIOService {
- let url = URL(string: "https://www.loomstatus.com")!
-}
diff --git a/stts/Services/StatusPage/OneSignal.swift b/stts/Services/IncidentIO/OneSignal.swift
similarity index 58%
rename from stts/Services/StatusPage/OneSignal.swift
rename to stts/Services/IncidentIO/OneSignal.swift
index ccb056c..483b28e 100644
--- a/stts/Services/StatusPage/OneSignal.swift
+++ b/stts/Services/IncidentIO/OneSignal.swift
@@ -5,7 +5,6 @@
import Foundation
-final class OneSignal: StatusPageService {
+final class OneSignal: IncidentIOService {
let url = URL(string: "https://status.onesignal.com")!
- let statusPageID = "wd0vc05tb8gm"
}
diff --git a/stts/Services/StatusPage/Rollbar.swift b/stts/Services/IncidentIO/Rollbar.swift
similarity index 58%
rename from stts/Services/StatusPage/Rollbar.swift
rename to stts/Services/IncidentIO/Rollbar.swift
index 7898ef4..e46a791 100644
--- a/stts/Services/StatusPage/Rollbar.swift
+++ b/stts/Services/IncidentIO/Rollbar.swift
@@ -5,7 +5,6 @@
import Foundation
-final class Rollbar: StatusPageService {
+final class Rollbar: IncidentIOService {
let url = URL(string: "https://status.rollbar.com")!
- let statusPageID = "0hsb4m2rq2h3"
}
diff --git a/stts/Services/Status.ioV1/Sendinblue.swift b/stts/Services/Status.ioV1/Sendinblue.swift
deleted file mode 100644
index e6c8e3f..0000000
--- a/stts/Services/Status.ioV1/Sendinblue.swift
+++ /dev/null
@@ -1,11 +0,0 @@
-//
-// Sendinblue.swift
-// stts
-//
-
-import Foundation
-
-final class Sendinblue: StatusioV1Service {
- let url = URL(string: "https://status.sendinblue.com")!
- let statusPageID = "586a5ae632dde2fc5b0013c1"
-}
diff --git a/stts/Services/StatusPage/Loom.swift b/stts/Services/StatusPage/Loom.swift
new file mode 100644
index 0000000..396f161
--- /dev/null
+++ b/stts/Services/StatusPage/Loom.swift
@@ -0,0 +1,11 @@
+//
+// Loom.swift
+// stts
+//
+
+import Foundation
+
+final class Loom: StatusPageService {
+ let url = URL(string: "https://loom.status.atlassian.com")!
+ let statusPageID = "j9r9w5bcs26w"
+}
diff --git a/stts/Services/Super/FirebaseStatusDashboardStore.swift b/stts/Services/Super/FirebaseStatusDashboardStore.swift
index 22aa27f..d027b46 100644
--- a/stts/Services/Super/FirebaseStatusDashboardStore.swift
+++ b/stts/Services/Super/FirebaseStatusDashboardStore.swift
@@ -65,7 +65,7 @@ class FirebaseStatusDashboardStore: Loading {
if type(of: service) == Firebase.self {
status = statuses["_general"]
} else {
- status = statuses[service.dashboardName]
+ status = statuses[service.dashboardName] ?? statuses[service.name]
}
switch status {
diff --git a/stts/Services/Super/PagerDutyService.swift b/stts/Services/Super/PagerDutyService.swift
index 0c6bab0..6008d10 100644
--- a/stts/Services/Super/PagerDutyService.swift
+++ b/stts/Services/Super/PagerDutyService.swift
@@ -11,7 +11,7 @@ typealias PagerDutyService = BasePagerDutyService & RequiredServiceProperties &
protocol RequiredPagerDutyProperties {}
class BasePagerDutyService: BaseService {
- private struct PagerDutyData: Codable {
+ private struct PagerDutyDataV1: Codable {
struct Summary: Codable {
enum CodingKeys: String, CodingKey {
case openIncidents = "open_incidents"
@@ -52,40 +52,84 @@ class BasePagerDutyService: BaseService {
let summary: Summary
}
+ private struct PagerDutyDataV2: Codable {
+ struct Layout: Codable {
+ struct LayoutSettings: Codable {
+ struct StatusPage: Codable {
+ let globalStatusHeadline: String
+ let globalStatusHeadlineHasError: Bool
+ let linkText: String
+ let linkUrlText: String
+ }
+
+ let statusPage: StatusPage
+ }
+
+ let layoutSettings: LayoutSettings
+
+ enum CodingKeys: String, CodingKey {
+ case layoutSettings = "layout_settings"
+ }
+ }
+
+ let layout: Layout
+
+ enum CodingKeys: String, CodingKey {
+ case layout
+ }
+ }
+
override func updateStatus(callback: @escaping (BaseService) -> Void) {
guard let realSelf = self as? PagerDutyService else {
fatalError("BasePagerDutyService should not be used directly.")
}
loadData(with: realSelf.url) { [weak self] data, _, error in
- guard let strongSelf = self else { return }
- defer { callback(strongSelf) }
- guard let data = data else { return strongSelf._fail(error) }
+ guard let self else { return }
+ defer { callback(self) }
+ guard let data = data else { return _fail(error) }
guard
let doc = try? HTML(html: data, encoding: .utf8),
let json = doc.css("script#data").first?.innerHTML,
- let jsonData = json.data(using: .utf8),
- let data = try? JSONDecoder().decode(PagerDutyData.self, from: jsonData)
+ let jsonData = json.data(using: .utf8)
else {
- return strongSelf._fail("Couldn't parse response")
+ return _fail("Couldn't parse response")
}
- let incidents = data.summary.openIncidents
- switch incidents.count {
- case 0:
- strongSelf.statusDescription = ServiceStatusDescription(status: .good, message: "No known issue")
- case 1:
- strongSelf.statusDescription = ServiceStatusDescription(
- status: incidents[0].updates.first?.severity.serviceStatus ?? .good,
- message: incidents[0].title
- )
- default:
- strongSelf.statusDescription = ServiceStatusDescription(
- status: incidents.map { $0.updates.first?.severity.serviceStatus ?? .good }.max() ?? .good,
- message: incidents.map { "- \($0.title)" }.joined(separator: "\n")
- )
+ if let data = try? JSONDecoder().decode(PagerDutyDataV1.self, from: jsonData) {
+ updateStatus(from: data)
+ } else if let data = try? JSONDecoder().decode(PagerDutyDataV2.self, from: jsonData) {
+ updateStatus(from: data)
+ } else {
+ _fail("Couldn't parse response")
}
}
}
+
+ private func updateStatus(from data: PagerDutyDataV1) {
+ let incidents = data.summary.openIncidents
+ switch incidents.count {
+ case 0:
+ statusDescription = ServiceStatusDescription(status: .good, message: "No known issue")
+ case 1:
+ statusDescription = ServiceStatusDescription(
+ status: incidents[0].updates.first?.severity.serviceStatus ?? .good,
+ message: incidents[0].title
+ )
+ default:
+ statusDescription = ServiceStatusDescription(
+ status: incidents.map { $0.updates.first?.severity.serviceStatus ?? .good }.max() ?? .good,
+ message: incidents.map { "- \($0.title)" }.joined(separator: "\n")
+ )
+ }
+ }
+
+ private func updateStatus(from data: PagerDutyDataV2) {
+ let status: ServiceStatus = data.layout.layoutSettings.statusPage.globalStatusHeadlineHasError ? .minor : .good
+ statusDescription = ServiceStatusDescription(
+ status: status,
+ message: data.layout.layoutSettings.statusPage.globalStatusHeadline
+ )
+ }
}
diff --git a/stts/Services/Super/SalesforceCategories.swift b/stts/Services/Super/SalesforceCategories.swift
index b04d614..bdaa281 100644
--- a/stts/Services/Super/SalesforceCategories.swift
+++ b/stts/Services/Super/SalesforceCategories.swift
@@ -27,6 +27,14 @@ class BaseDatorama: BaseSalesforceCategory {
let url = URL(string: "https://status.salesforce.com/products/Datorama")!
}
+typealias Heroku =
+ BaseHeroku & RequiredServiceProperties & SalesforceStoreService
+
+class BaseHeroku: BaseSalesforceCategory {
+ static var store = SalesforceStore(key: "Heroku")
+ let url = URL(string: "https://status.salesforce.com/products/Heroku")!
+}
+
typealias MCAccountEngagement =
BaseMCAccountEngagement & RequiredServiceProperties & SalesforceStoreService
@@ -67,6 +75,14 @@ class BaseSalesforceServices: BaseSalesforceCategory {
let url = URL(string: "https://status.salesforce.com/products/Salesforce_Services")!
}
+typealias Spiff =
+ BaseSpiff & RequiredServiceProperties & SalesforceStoreService
+
+class BaseSpiff: BaseSalesforceCategory {
+ static var store = SalesforceStore(key: "Spiff")
+ let url = URL(string: "https://status.salesforce.com/products/Spiff")!
+}
+
typealias Tableau =
BaseTableau & RequiredServiceProperties & SalesforceStoreService
diff --git a/stts/Services/Super/StatusPageService.swift b/stts/Services/Super/StatusPageService.swift
index bfd4849..ba43b12 100644
--- a/stts/Services/Super/StatusPageService.swift
+++ b/stts/Services/Super/StatusPageService.swift
@@ -177,8 +177,17 @@ class BaseStatusPageService: BaseService {
// Set the message by combining the unresolved incident names
let unresolvedIncidents = summary.incidents.filter { $0.isUnresolved }
if !unresolvedIncidents.isEmpty {
- let prefix = unresolvedIncidents.count > 1 ? "* " : ""
- let message = unresolvedIncidents.map { "\(prefix)\($0.name)" }.joined(separator: "\n")
+ let prefix: String? = unresolvedIncidents.count > 1 ? "*" : nil
+ let message = unresolvedIncidents.map {
+ let statusPrefix: String? = switch $0.status {
+ case .monitoring:
+ "Monitoring:"
+ case .identified, .investigating, .postmortem, .resolved:
+ nil
+ }
+
+ return [prefix, statusPrefix, $0.name].compactMap { $0 }.joined(separator: " ")
+ }.joined(separator: "\n")
statusDescription = ServiceStatusDescription(status: status, message: message)
return
}
diff --git a/stts/stts.entitlements b/stts/stts.entitlements
index ee95ab7..0c67376 100644
--- a/stts/stts.entitlements
+++ b/stts/stts.entitlements
@@ -1,10 +1,5 @@
-
- com.apple.security.app-sandbox
-
- com.apple.security.network.client
-
-
+