{
  "version": "2.0",
  "metadata": {
    "apiVersion": "2018-01-01",
    "endpointPrefix": "fms",
    "jsonVersion": "1.1",
    "protocol": "json",
    "serviceAbbreviation": "FMS",
    "serviceFullName": "Firewall Management Service",
    "serviceId": "FMS",
    "signatureVersion": "v4",
    "targetPrefix": "AWSFMS_20180101",
    "uid": "fms-2018-01-01"
  },
  "operations": {
    "AssociateAdminAccount": {
      "input": {
        "type": "structure",
        "required": [
          "AdminAccount"
        ],
        "members": {
          "AdminAccount": {}
        }
      }
    },
    "DeleteAppsList": {
      "input": {
        "type": "structure",
        "required": [
          "ListId"
        ],
        "members": {
          "ListId": {}
        }
      }
    },
    "DeleteNotificationChannel": {
      "input": {
        "type": "structure",
        "members": {}
      }
    },
    "DeletePolicy": {
      "input": {
        "type": "structure",
        "required": [
          "PolicyId"
        ],
        "members": {
          "PolicyId": {},
          "DeleteAllPolicyResources": {
            "type": "boolean"
          }
        }
      }
    },
    "DeleteProtocolsList": {
      "input": {
        "type": "structure",
        "required": [
          "ListId"
        ],
        "members": {
          "ListId": {}
        }
      }
    },
    "DisassociateAdminAccount": {
      "input": {
        "type": "structure",
        "members": {}
      }
    },
    "GetAdminAccount": {
      "input": {
        "type": "structure",
        "members": {}
      },
      "output": {
        "type": "structure",
        "members": {
          "AdminAccount": {},
          "RoleStatus": {}
        }
      }
    },
    "GetAppsList": {
      "input": {
        "type": "structure",
        "required": [
          "ListId"
        ],
        "members": {
          "ListId": {},
          "DefaultList": {
            "type": "boolean"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "AppsList": {
            "shape": "Sg"
          },
          "AppsListArn": {}
        }
      }
    },
    "GetComplianceDetail": {
      "input": {
        "type": "structure",
        "required": [
          "PolicyId",
          "MemberAccount"
        ],
        "members": {
          "PolicyId": {},
          "MemberAccount": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "PolicyComplianceDetail": {
            "type": "structure",
            "members": {
              "PolicyOwner": {},
              "PolicyId": {},
              "MemberAccount": {},
              "Violators": {
                "type": "list",
                "member": {
                  "type": "structure",
                  "members": {
                    "ResourceId": {},
                    "ViolationReason": {},
                    "ResourceType": {}
                  }
                }
              },
              "EvaluationLimitExceeded": {
                "type": "boolean"
              },
              "ExpiredAt": {
                "type": "timestamp"
              },
              "IssueInfoMap": {
                "shape": "Sz"
              }
            }
          }
        }
      }
    },
    "GetNotificationChannel": {
      "input": {
        "type": "structure",
        "members": {}
      },
      "output": {
        "type": "structure",
        "members": {
          "SnsTopicArn": {},
          "SnsRoleName": {}
        }
      }
    },
    "GetPolicy": {
      "input": {
        "type": "structure",
        "required": [
          "PolicyId"
        ],
        "members": {
          "PolicyId": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Policy": {
            "shape": "S16"
          },
          "PolicyArn": {}
        }
      }
    },
    "GetProtectionStatus": {
      "input": {
        "type": "structure",
        "required": [
          "PolicyId"
        ],
        "members": {
          "PolicyId": {},
          "MemberAccountId": {},
          "StartTime": {
            "type": "timestamp"
          },
          "EndTime": {
            "type": "timestamp"
          },
          "NextToken": {},
          "MaxResults": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "AdminAccountId": {},
          "ServiceType": {},
          "Data": {},
          "NextToken": {}
        }
      }
    },
    "GetProtocolsList": {
      "input": {
        "type": "structure",
        "required": [
          "ListId"
        ],
        "members": {
          "ListId": {},
          "DefaultList": {
            "type": "boolean"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "ProtocolsList": {
            "shape": "S1r"
          },
          "ProtocolsListArn": {}
        }
      }
    },
    "GetViolationDetails": {
      "input": {
        "type": "structure",
        "required": [
          "PolicyId",
          "MemberAccount",
          "ResourceId",
          "ResourceType"
        ],
        "members": {
          "PolicyId": {},
          "MemberAccount": {},
          "ResourceId": {},
          "ResourceType": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "ViolationDetail": {
            "type": "structure",
            "required": [
              "PolicyId",
              "MemberAccount",
              "ResourceId",
              "ResourceType",
              "ResourceViolations"
            ],
            "members": {
              "PolicyId": {},
              "MemberAccount": {},
              "ResourceId": {},
              "ResourceType": {},
              "ResourceViolations": {
                "type": "list",
                "member": {
                  "type": "structure",
                  "members": {
                    "AwsVPCSecurityGroupViolation": {
                      "type": "structure",
                      "members": {
                        "ViolationTarget": {},
                        "ViolationTargetDescription": {},
                        "PartialMatches": {
                          "type": "list",
                          "member": {
                            "type": "structure",
                            "members": {
                              "Reference": {},
                              "TargetViolationReasons": {
                                "type": "list",
                                "member": {}
                              }
                            }
                          }
                        },
                        "PossibleSecurityGroupRemediationActions": {
                          "type": "list",
                          "member": {
                            "type": "structure",
                            "members": {
                              "RemediationActionType": {},
                              "Description": {},
                              "RemediationResult": {
                                "type": "structure",
                                "members": {
                                  "IPV4Range": {},
                                  "IPV6Range": {},
                                  "PrefixListId": {},
                                  "Protocol": {},
                                  "FromPort": {
                                    "type": "long"
                                  },
                                  "ToPort": {
                                    "type": "long"
                                  }
                                }
                              },
                              "IsDefaultAction": {
                                "type": "boolean"
                              }
                            }
                          }
                        }
                      }
                    },
                    "AwsEc2NetworkInterfaceViolation": {
                      "shape": "S2d"
                    },
                    "AwsEc2InstanceViolation": {
                      "type": "structure",
                      "members": {
                        "ViolationTarget": {},
                        "AwsEc2NetworkInterfaceViolations": {
                          "type": "list",
                          "member": {
                            "shape": "S2d"
                          }
                        }
                      }
                    },
                    "NetworkFirewallMissingFirewallViolation": {
                      "type": "structure",
                      "members": {
                        "ViolationTarget": {},
                        "VPC": {},
                        "AvailabilityZone": {},
                        "TargetViolationReason": {}
                      }
                    },
                    "NetworkFirewallMissingSubnetViolation": {
                      "type": "structure",
                      "members": {
                        "ViolationTarget": {},
                        "VPC": {},
                        "AvailabilityZone": {},
                        "TargetViolationReason": {}
                      }
                    },
                    "NetworkFirewallMissingExpectedRTViolation": {
                      "type": "structure",
                      "members": {
                        "ViolationTarget": {},
                        "VPC": {},
                        "AvailabilityZone": {},
                        "CurrentRouteTable": {},
                        "ExpectedRouteTable": {}
                      }
                    },
                    "NetworkFirewallPolicyModifiedViolation": {
                      "type": "structure",
                      "members": {
                        "ViolationTarget": {},
                        "CurrentPolicyDescription": {
                          "shape": "S2l"
                        },
                        "ExpectedPolicyDescription": {
                          "shape": "S2l"
                        }
                      }
                    },
                    "DnsRuleGroupPriorityConflictViolation": {
                      "type": "structure",
                      "members": {
                        "ViolationTarget": {},
                        "ViolationTargetDescription": {},
                        "ConflictingPriority": {
                          "type": "integer"
                        },
                        "ConflictingPolicyId": {},
                        "UnavailablePriorities": {
                          "type": "list",
                          "member": {
                            "type": "integer"
                          }
                        }
                      }
                    },
                    "DnsDuplicateRuleGroupViolation": {
                      "type": "structure",
                      "members": {
                        "ViolationTarget": {},
                        "ViolationTargetDescription": {}
                      }
                    },
                    "DnsRuleGroupLimitExceededViolation": {
                      "type": "structure",
                      "members": {
                        "ViolationTarget": {},
                        "ViolationTargetDescription": {},
                        "NumberOfRuleGroupsAlreadyAssociated": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              },
              "ResourceTags": {
                "shape": "S30"
              },
              "ResourceDescription": {}
            }
          }
        }
      }
    },
    "ListAppsLists": {
      "input": {
        "type": "structure",
        "required": [
          "MaxResults"
        ],
        "members": {
          "DefaultLists": {
            "type": "boolean"
          },
          "NextToken": {},
          "MaxResults": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "AppsLists": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "ListArn": {},
                "ListId": {},
                "ListName": {},
                "AppsList": {
                  "shape": "Sk"
                }
              }
            }
          },
          "NextToken": {}
        }
      }
    },
    "ListComplianceStatus": {
      "input": {
        "type": "structure",
        "required": [
          "PolicyId"
        ],
        "members": {
          "PolicyId": {},
          "NextToken": {},
          "MaxResults": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "PolicyComplianceStatusList": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "PolicyOwner": {},
                "PolicyId": {},
                "PolicyName": {},
                "MemberAccount": {},
                "EvaluationResults": {
                  "type": "list",
                  "member": {
                    "type": "structure",
                    "members": {
                      "ComplianceStatus": {},
                      "ViolatorCount": {
                        "type": "long"
                      },
                      "EvaluationLimitExceeded": {
                        "type": "boolean"
                      }
                    }
                  }
                },
                "LastUpdated": {
                  "type": "timestamp"
                },
                "IssueInfoMap": {
                  "shape": "Sz"
                }
              }
            }
          },
          "NextToken": {}
        }
      }
    },
    "ListMemberAccounts": {
      "input": {
        "type": "structure",
        "members": {
          "NextToken": {},
          "MaxResults": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "MemberAccounts": {
            "type": "list",
            "member": {}
          },
          "NextToken": {}
        }
      }
    },
    "ListPolicies": {
      "input": {
        "type": "structure",
        "members": {
          "NextToken": {},
          "MaxResults": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "PolicyList": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "PolicyArn": {},
                "PolicyId": {},
                "PolicyName": {},
                "ResourceType": {},
                "SecurityServiceType": {},
                "RemediationEnabled": {
                  "type": "boolean"
                }
              }
            }
          },
          "NextToken": {}
        }
      }
    },
    "ListProtocolsLists": {
      "input": {
        "type": "structure",
        "required": [
          "MaxResults"
        ],
        "members": {
          "DefaultLists": {
            "type": "boolean"
          },
          "NextToken": {},
          "MaxResults": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "ProtocolsLists": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "ListArn": {},
                "ListId": {},
                "ListName": {},
                "ProtocolsList": {
                  "shape": "S1s"
                }
              }
            }
          },
          "NextToken": {}
        }
      }
    },
    "ListTagsForResource": {
      "input": {
        "type": "structure",
        "required": [
          "ResourceArn"
        ],
        "members": {
          "ResourceArn": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "TagList": {
            "shape": "S30"
          }
        }
      }
    },
    "PutAppsList": {
      "input": {
        "type": "structure",
        "required": [
          "AppsList"
        ],
        "members": {
          "AppsList": {
            "shape": "Sg"
          },
          "TagList": {
            "shape": "S30"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "AppsList": {
            "shape": "Sg"
          },
          "AppsListArn": {}
        }
      }
    },
    "PutNotificationChannel": {
      "input": {
        "type": "structure",
        "required": [
          "SnsTopicArn",
          "SnsRoleName"
        ],
        "members": {
          "SnsTopicArn": {},
          "SnsRoleName": {}
        }
      }
    },
    "PutPolicy": {
      "input": {
        "type": "structure",
        "required": [
          "Policy"
        ],
        "members": {
          "Policy": {
            "shape": "S16"
          },
          "TagList": {
            "shape": "S30"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Policy": {
            "shape": "S16"
          },
          "PolicyArn": {}
        }
      }
    },
    "PutProtocolsList": {
      "input": {
        "type": "structure",
        "required": [
          "ProtocolsList"
        ],
        "members": {
          "ProtocolsList": {
            "shape": "S1r"
          },
          "TagList": {
            "shape": "S30"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "ProtocolsList": {
            "shape": "S1r"
          },
          "ProtocolsListArn": {}
        }
      }
    },
    "TagResource": {
      "input": {
        "type": "structure",
        "required": [
          "ResourceArn",
          "TagList"
        ],
        "members": {
          "ResourceArn": {},
          "TagList": {
            "shape": "S30"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "UntagResource": {
      "input": {
        "type": "structure",
        "required": [
          "ResourceArn",
          "TagKeys"
        ],
        "members": {
          "ResourceArn": {},
          "TagKeys": {
            "type": "list",
            "member": {}
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    }
  },
  "shapes": {
    "Sg": {
      "type": "structure",
      "required": [
        "ListName",
        "AppsList"
      ],
      "members": {
        "ListId": {},
        "ListName": {},
        "ListUpdateToken": {},
        "CreateTime": {
          "type": "timestamp"
        },
        "LastUpdateTime": {
          "type": "timestamp"
        },
        "AppsList": {
          "shape": "Sk"
        },
        "PreviousAppsList": {
          "type": "map",
          "key": {},
          "value": {
            "shape": "Sk"
          }
        }
      }
    },
    "Sk": {
      "type": "list",
      "member": {
        "type": "structure",
        "required": [
          "AppName",
          "Protocol",
          "Port"
        ],
        "members": {
          "AppName": {},
          "Protocol": {},
          "Port": {
            "type": "long"
          }
        }
      }
    },
    "Sz": {
      "type": "map",
      "key": {},
      "value": {}
    },
    "S16": {
      "type": "structure",
      "required": [
        "PolicyName",
        "SecurityServicePolicyData",
        "ResourceType",
        "ExcludeResourceTags",
        "RemediationEnabled"
      ],
      "members": {
        "PolicyId": {},
        "PolicyName": {},
        "PolicyUpdateToken": {},
        "SecurityServicePolicyData": {
          "type": "structure",
          "required": [
            "Type"
          ],
          "members": {
            "Type": {},
            "ManagedServiceData": {}
          }
        },
        "ResourceType": {},
        "ResourceTypeList": {
          "type": "list",
          "member": {}
        },
        "ResourceTags": {
          "type": "list",
          "member": {
            "type": "structure",
            "required": [
              "Key"
            ],
            "members": {
              "Key": {},
              "Value": {}
            }
          }
        },
        "ExcludeResourceTags": {
          "type": "boolean"
        },
        "RemediationEnabled": {
          "type": "boolean"
        },
        "IncludeMap": {
          "shape": "S1g"
        },
        "ExcludeMap": {
          "shape": "S1g"
        }
      }
    },
    "S1g": {
      "type": "map",
      "key": {},
      "value": {
        "type": "list",
        "member": {}
      }
    },
    "S1r": {
      "type": "structure",
      "required": [
        "ListName",
        "ProtocolsList"
      ],
      "members": {
        "ListId": {},
        "ListName": {},
        "ListUpdateToken": {},
        "CreateTime": {
          "type": "timestamp"
        },
        "LastUpdateTime": {
          "type": "timestamp"
        },
        "ProtocolsList": {
          "shape": "S1s"
        },
        "PreviousProtocolsList": {
          "type": "map",
          "key": {},
          "value": {
            "shape": "S1s"
          }
        }
      }
    },
    "S1s": {
      "type": "list",
      "member": {}
    },
    "S2d": {
      "type": "structure",
      "members": {
        "ViolationTarget": {},
        "ViolatingSecurityGroups": {
          "type": "list",
          "member": {}
        }
      }
    },
    "S2l": {
      "type": "structure",
      "members": {
        "StatelessRuleGroups": {
          "type": "list",
          "member": {
            "type": "structure",
            "members": {
              "RuleGroupName": {},
              "ResourceId": {},
              "Priority": {
                "type": "integer"
              }
            }
          }
        },
        "StatelessDefaultActions": {
          "shape": "S2q"
        },
        "StatelessFragmentDefaultActions": {
          "shape": "S2q"
        },
        "StatelessCustomActions": {
          "shape": "S2q"
        },
        "StatefulRuleGroups": {
          "type": "list",
          "member": {
            "type": "structure",
            "members": {
              "RuleGroupName": {},
              "ResourceId": {}
            }
          }
        }
      }
    },
    "S2q": {
      "type": "list",
      "member": {}
    },
    "S30": {
      "type": "list",
      "member": {
        "type": "structure",
        "required": [
          "Key",
          "Value"
        ],
        "members": {
          "Key": {},
          "Value": {}
        }
      }
    }
  }
}