Schema
GraphQL Schema
type ChangeRequest {
id: String!
parentPath: String!
projectId: String!
name: String!
rules: [ChangeRequestRule!]!
state: ChangeRequestState!
stateReason: String
results: [BoundaryResult!]
createdAt: String!
createdBy: String!
updatedAt: String!
updatedBy: String!
}
type BoundaryResult {
boundaryAction: BoundaryAction!
boundaryId: String!
boundaryName: String!
isMatch: Boolean!
score: Int
state: ChangeRequestState
message: String
matchingRuleIds: [String!]
}
type ChangeRequestRule {
id: String
action: FirewallAction!
sources: [NetworkObject!]!
destinations: [NetworkObject!]!
services: [ServiceObject!]!
justification: String
comment: String
owner: String
expiration: String
}
enum ChangeRequestState {
Pass
Pending
Fail
Review
}
type ChangeRequestPage {
items: [ChangeRequest!]!
pageInfo: PageInfo!
}
enum BoundaryAction {
Pass
Fail
Score
}
enum FirewallAction {
Allow
Deny
}
type InventoryItemKey {
accountId: String!
region: String!
type: String!
id: String!
}
enum NetworkObjectType {
Any
Cidr
ConnectGroup
InventoryItem
}
interface NetworkObject {
type: NetworkObjectType!
}
type NetworkObjectAny implements NetworkObject {
"@codegen-enum-value: NetworkObjectType.Any"
type: NetworkObjectType!
}
type NetworkObjectCidr implements NetworkObject {
"@codegen-enum-value: NetworkObjectType.Cidr"
type: NetworkObjectType!
cidr: String!
}
type NetworkObjectConnectGroup implements NetworkObject {
"@codegen-enum-value: NetworkObjectType.ConnectGroup"
type: NetworkObjectType!
groupId: String!
}
type NetworkObjectInventoryItem implements NetworkObject {
"@codegen-enum-value: NetworkObjectType.InventoryItem"
type: NetworkObjectType!
itemKey: InventoryItemKey!
}
enum ServiceObjectType {
AllICMPv4
AllICMPv6
AllTCP
AllTraffic
AllUDP
CustomProtocol
ICMPv4
ICMPv6
TCP
UDP
PortRangeSize
}
interface ServiceObject {
type: ServiceObjectType!
}
type ServiceObjectBase implements ServiceObject {
type: ServiceObjectType!
}
type ServiceObjectCustomProtocol implements ServiceObject {
"@codegen-enum-value: ServiceObjectType.CustomProtocol"
type: ServiceObjectType!
protocol: Int!
}
type ServiceObjectIcmpV4 implements ServiceObject {
"@codegen-enum-value: ServiceObjectType.IcmPv4"
type: ServiceObjectType!
icmpType: Int!
icmpCode: Int!
}
type ServiceObjectIcmpV6 implements ServiceObject {
"@codegen-enum-value: ServiceObjectType.IcmPv6"
type: ServiceObjectType!
icmpType: Int!
icmpCode: Int!
}
type ServiceObjectTcp implements ServiceObject {
"@codegen-enum-value: ServiceObjectType.Tcp"
type: ServiceObjectType!
portStart: Int!
portEnd: Int!
}
type ServiceObjectUdp implements ServiceObject {
"@codegen-enum-value: ServiceObjectType.Udp"
type: ServiceObjectType!
portStart: Int!
portEnd: Int!
}
type ServiceObjectPortRangeSize implements ServiceObject {
"@codegen-enum-value: ServiceObjectType.PortRangeSize"
type: ServiceObjectType!
maxSize: Int!
}
type PageInfo {
nextPageKey: String
}
input ChangeRequestInput {
id: String!
name: String!
projectId: String!
rules: [ChangeRequestRuleInput!]!
}
input ChangeRequestRuleInput {
id: String
action: FirewallAction!
sources: [NetworkObjectInput!]!
destinations: [NetworkObjectInput!]!
services: [ServiceObjectInput!]!
justification: String
comment: String
owner: String
expiration: String
}
input InventoryItemKeyInput {
accountId: String!
region: String!
type: String!
id: String!
}
input NetworkObjectInput {
type: NetworkObjectType!
cidr: String
groupId: String
itemKey: InventoryItemKeyInput
}
input ServiceObjectInput {
type: ServiceObjectType!
"CustomProtocol"
protocol: Int
"IcmPv4 & IcmPv6"
icmpType: Int
"IcmPv4 & IcmPv6"
icmpCode: Int
"Tcp & Udp"
portStart: Int
"Tcp & Udp"
portEnd: Int
"PortRangeSize"
maxSize: Int
}
type Query {
changeRequest(id: String!): ChangeRequest
changeRequests(nextPageKey: String, limit: Int): ChangeRequestPage!
}
type Mutation {
deleteChangeRequest(id: String!): String!
saveChangeRequest(input: ChangeRequestInput!): ChangeRequest!
}