/
security_group_ingress.clj
33 lines (25 loc) · 1.37 KB
/
security_group_ingress.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
(ns crucible.aws.ec2.security-group-ingress
"AWS::EC2::SecurityGroupIngress"
(:require [clojure.spec.alpha :as s]
[crucible.resources :refer [spec-or-ref defresource]]
[crucible.aws.ec2 :as ec2]))
(s/def ::ip-protocol (spec-or-ref (s/or :int (s/and integer?
#(<= -1 %))
:str #{"tcp" "udp" "icmp"})))
(s/def ::cidr-ip (spec-or-ref string?))
(s/def ::cidr-ipv6 (spec-or-ref string?))
(s/def ::description (spec-or-ref string?))
(s/def ::from-port ::ec2/port)
(s/def ::to-port ::ec2/port)
(s/def ::security-group-ingress (s/keys :req [::ip-protocol]
:opt [::cidr-ip
::cidr-ipv6
::description
::from-port
::to-port
::group-id
::group-name
::source-security-group-id
::source-security-group-name
::source-security-group-owner-id]))
(defresource security-group-ingress (ec2/ec2 "SecurityGroupIngress") ::security-group-ingress)