diff --git a/pkgs/tools/networking/cloud-custodian/default.nix b/pkgs/tools/networking/cloud-custodian/default.nix new file mode 100644 index 00000000000000..a57d9f13d7852e --- /dev/null +++ b/pkgs/tools/networking/cloud-custodian/default.nix @@ -0,0 +1,48 @@ +{ lib, buildPythonApplication, fetchPypi +, argcomplete +, boto3 +, botocore +, certifi +, dateutil +, jsonpatch +, jsonschema +, pyyaml +, tabulate +, urllib3 +}: + +buildPythonApplication rec { + pname = "cloud-custodian"; + version = "0.8.45.1"; + + src = fetchPypi { + pname = "c7n"; + inherit version; + sha256 = "0c199gdmpm83xfghrbzp02xliyxiygsnx2fvb35j9qpf37wzzp3z"; + }; + + propagatedBuildInputs = [ + argcomplete + boto3 + botocore + certifi + dateutil + jsonpatch + jsonschema + pyyaml + tabulate + urllib3 + ]; + + # Requires tox, many packages, and network access + checkPhase = '' + $out/bin/custodian --help + ''; + + meta = with lib; { + description = "Rules engine for cloud security, cost optimization, and governance"; + homepage = "https://cloudcustodian.io"; + license = licenses.asl20; + maintainers = with maintainers; [ bhipple ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 080fd573654996..7b738d982a1088 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -807,6 +807,8 @@ in claws = callPackage ../tools/misc/claws { }; + cloud-custodian = python3Packages.callPackage ../tools/networking/cloud-custodian { }; + codespell = with python3Packages; toPythonApplication codespell; cozy = callPackage ../applications/audio/cozy-audiobooks { };