{
  "version": "2.0",
  "metadata": {
    "apiVersion": "2015-04-16",
    "endpointPrefix": "ds",
    "jsonVersion": "1.1",
    "protocol": "json",
    "serviceAbbreviation": "Directory Service",
    "serviceFullName": "AWS Directory Service",
    "signatureVersion": "v4",
    "targetPrefix": "DirectoryService_20150416"
  },
  "operations": {
    "AddIpRoutes": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId",
          "IpRoutes"
        ],
        "members": {
          "DirectoryId": {},
          "IpRoutes": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "CidrIp": {},
                "Description": {}
              }
            }
          },
          "UpdateSecurityGroupForDirectoryControllers": {
            "type": "boolean"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "AddTagsToResource": {
      "input": {
        "type": "structure",
        "required": [
          "ResourceId",
          "Tags"
        ],
        "members": {
          "ResourceId": {},
          "Tags": {
            "shape": "Sb"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "CancelSchemaExtension": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId",
          "SchemaExtensionId"
        ],
        "members": {
          "DirectoryId": {},
          "SchemaExtensionId": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "ConnectDirectory": {
      "input": {
        "type": "structure",
        "required": [
          "Name",
          "Password",
          "Size",
          "ConnectSettings"
        ],
        "members": {
          "Name": {},
          "ShortName": {},
          "Password": {
            "shape": "Sm"
          },
          "Description": {},
          "Size": {},
          "ConnectSettings": {
            "type": "structure",
            "required": [
              "VpcId",
              "SubnetIds",
              "CustomerDnsIps",
              "CustomerUserName"
            ],
            "members": {
              "VpcId": {},
              "SubnetIds": {
                "shape": "Sq"
              },
              "CustomerDnsIps": {
                "shape": "Ss"
              },
              "CustomerUserName": {}
            }
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "DirectoryId": {}
        }
      }
    },
    "CreateAlias": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId",
          "Alias"
        ],
        "members": {
          "DirectoryId": {},
          "Alias": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "DirectoryId": {},
          "Alias": {}
        }
      }
    },
    "CreateComputer": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId",
          "ComputerName",
          "Password"
        ],
        "members": {
          "DirectoryId": {},
          "ComputerName": {},
          "Password": {
            "type": "string",
            "sensitive": true
          },
          "OrganizationalUnitDistinguishedName": {},
          "ComputerAttributes": {
            "shape": "S13"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Computer": {
            "type": "structure",
            "members": {
              "ComputerId": {},
              "ComputerName": {},
              "ComputerAttributes": {
                "shape": "S13"
              }
            }
          }
        }
      }
    },
    "CreateConditionalForwarder": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId",
          "RemoteDomainName",
          "DnsIpAddrs"
        ],
        "members": {
          "DirectoryId": {},
          "RemoteDomainName": {},
          "DnsIpAddrs": {
            "shape": "Ss"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "CreateDirectory": {
      "input": {
        "type": "structure",
        "required": [
          "Name",
          "Password",
          "Size"
        ],
        "members": {
          "Name": {},
          "ShortName": {},
          "Password": {
            "shape": "S1e"
          },
          "Description": {},
          "Size": {},
          "VpcSettings": {
            "shape": "S1f"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "DirectoryId": {}
        }
      }
    },
    "CreateMicrosoftAD": {
      "input": {
        "type": "structure",
        "required": [
          "Name",
          "Password",
          "VpcSettings"
        ],
        "members": {
          "Name": {},
          "ShortName": {},
          "Password": {
            "shape": "S1e"
          },
          "Description": {},
          "VpcSettings": {
            "shape": "S1f"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "DirectoryId": {}
        }
      }
    },
    "CreateSnapshot": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId"
        ],
        "members": {
          "DirectoryId": {},
          "Name": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "SnapshotId": {}
        }
      }
    },
    "CreateTrust": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId",
          "RemoteDomainName",
          "TrustPassword",
          "TrustDirection"
        ],
        "members": {
          "DirectoryId": {},
          "RemoteDomainName": {},
          "TrustPassword": {
            "type": "string",
            "sensitive": true
          },
          "TrustDirection": {},
          "TrustType": {},
          "ConditionalForwarderIpAddrs": {
            "shape": "Ss"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "TrustId": {}
        }
      }
    },
    "DeleteConditionalForwarder": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId",
          "RemoteDomainName"
        ],
        "members": {
          "DirectoryId": {},
          "RemoteDomainName": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "DeleteDirectory": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId"
        ],
        "members": {
          "DirectoryId": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "DirectoryId": {}
        }
      }
    },
    "DeleteSnapshot": {
      "input": {
        "type": "structure",
        "required": [
          "SnapshotId"
        ],
        "members": {
          "SnapshotId": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "SnapshotId": {}
        }
      }
    },
    "DeleteTrust": {
      "input": {
        "type": "structure",
        "required": [
          "TrustId"
        ],
        "members": {
          "TrustId": {},
          "DeleteAssociatedConditionalForwarder": {
            "type": "boolean"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "TrustId": {}
        }
      }
    },
    "DeregisterEventTopic": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId",
          "TopicName"
        ],
        "members": {
          "DirectoryId": {},
          "TopicName": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "DescribeConditionalForwarders": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId"
        ],
        "members": {
          "DirectoryId": {},
          "RemoteDomainNames": {
            "type": "list",
            "member": {}
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "ConditionalForwarders": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "RemoteDomainName": {},
                "DnsIpAddrs": {
                  "shape": "Ss"
                },
                "ReplicationScope": {}
              }
            }
          }
        }
      }
    },
    "DescribeDirectories": {
      "input": {
        "type": "structure",
        "members": {
          "DirectoryIds": {
            "type": "list",
            "member": {}
          },
          "NextToken": {},
          "Limit": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "DirectoryDescriptions": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "DirectoryId": {},
                "Name": {},
                "ShortName": {},
                "Size": {},
                "Alias": {},
                "AccessUrl": {},
                "Description": {},
                "DnsIpAddrs": {
                  "shape": "Ss"
                },
                "Stage": {},
                "LaunchTime": {
                  "type": "timestamp"
                },
                "StageLastUpdatedDateTime": {
                  "type": "timestamp"
                },
                "Type": {},
                "VpcSettings": {
                  "type": "structure",
                  "members": {
                    "VpcId": {},
                    "SubnetIds": {
                      "shape": "Sq"
                    },
                    "SecurityGroupId": {},
                    "AvailabilityZones": {
                      "shape": "S2p"
                    }
                  }
                },
                "ConnectSettings": {
                  "type": "structure",
                  "members": {
                    "VpcId": {},
                    "SubnetIds": {
                      "shape": "Sq"
                    },
                    "CustomerUserName": {},
                    "SecurityGroupId": {},
                    "AvailabilityZones": {
                      "shape": "S2p"
                    },
                    "ConnectIps": {
                      "type": "list",
                      "member": {}
                    }
                  }
                },
                "RadiusSettings": {
                  "shape": "S2t"
                },
                "RadiusStatus": {},
                "StageReason": {},
                "SsoEnabled": {
                  "type": "boolean"
                }
              }
            }
          },
          "NextToken": {}
        }
      }
    },
    "DescribeEventTopics": {
      "input": {
        "type": "structure",
        "members": {
          "DirectoryId": {},
          "TopicNames": {
            "type": "list",
            "member": {}
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "EventTopics": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "DirectoryId": {},
                "TopicName": {},
                "TopicArn": {},
                "CreatedDateTime": {
                  "type": "timestamp"
                },
                "Status": {}
              }
            }
          }
        }
      }
    },
    "DescribeSnapshots": {
      "input": {
        "type": "structure",
        "members": {
          "DirectoryId": {},
          "SnapshotIds": {
            "type": "list",
            "member": {}
          },
          "NextToken": {},
          "Limit": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Snapshots": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "DirectoryId": {},
                "SnapshotId": {},
                "Type": {},
                "Name": {},
                "Status": {},
                "StartTime": {
                  "type": "timestamp"
                }
              }
            }
          },
          "NextToken": {}
        }
      }
    },
    "DescribeTrusts": {
      "input": {
        "type": "structure",
        "members": {
          "DirectoryId": {},
          "TrustIds": {
            "type": "list",
            "member": {}
          },
          "NextToken": {},
          "Limit": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Trusts": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "DirectoryId": {},
                "TrustId": {},
                "RemoteDomainName": {},
                "TrustType": {},
                "TrustDirection": {},
                "TrustState": {},
                "CreatedDateTime": {
                  "type": "timestamp"
                },
                "LastUpdatedDateTime": {
                  "type": "timestamp"
                },
                "StateLastUpdatedDateTime": {
                  "type": "timestamp"
                },
                "TrustStateReason": {}
              }
            }
          },
          "NextToken": {}
        }
      }
    },
    "DisableRadius": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId"
        ],
        "members": {
          "DirectoryId": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "DisableSso": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId"
        ],
        "members": {
          "DirectoryId": {},
          "UserName": {},
          "Password": {
            "shape": "Sm"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "EnableRadius": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId",
          "RadiusSettings"
        ],
        "members": {
          "DirectoryId": {},
          "RadiusSettings": {
            "shape": "S2t"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "EnableSso": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId"
        ],
        "members": {
          "DirectoryId": {},
          "UserName": {},
          "Password": {
            "shape": "Sm"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "GetDirectoryLimits": {
      "input": {
        "type": "structure",
        "members": {}
      },
      "output": {
        "type": "structure",
        "members": {
          "DirectoryLimits": {
            "type": "structure",
            "members": {
              "CloudOnlyDirectoriesLimit": {
                "type": "integer"
              },
              "CloudOnlyDirectoriesCurrentCount": {
                "type": "integer"
              },
              "CloudOnlyDirectoriesLimitReached": {
                "type": "boolean"
              },
              "CloudOnlyMicrosoftADLimit": {
                "type": "integer"
              },
              "CloudOnlyMicrosoftADCurrentCount": {
                "type": "integer"
              },
              "CloudOnlyMicrosoftADLimitReached": {
                "type": "boolean"
              },
              "ConnectedDirectoriesLimit": {
                "type": "integer"
              },
              "ConnectedDirectoriesCurrentCount": {
                "type": "integer"
              },
              "ConnectedDirectoriesLimitReached": {
                "type": "boolean"
              }
            }
          }
        }
      }
    },
    "GetSnapshotLimits": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId"
        ],
        "members": {
          "DirectoryId": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "SnapshotLimits": {
            "type": "structure",
            "members": {
              "ManualSnapshotsLimit": {
                "type": "integer"
              },
              "ManualSnapshotsCurrentCount": {
                "type": "integer"
              },
              "ManualSnapshotsLimitReached": {
                "type": "boolean"
              }
            }
          }
        }
      }
    },
    "ListIpRoutes": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId"
        ],
        "members": {
          "DirectoryId": {},
          "NextToken": {},
          "Limit": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "IpRoutesInfo": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "DirectoryId": {},
                "CidrIp": {},
                "IpRouteStatusMsg": {},
                "AddedDateTime": {
                  "type": "timestamp"
                },
                "IpRouteStatusReason": {},
                "Description": {}
              }
            }
          },
          "NextToken": {}
        }
      }
    },
    "ListSchemaExtensions": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId"
        ],
        "members": {
          "DirectoryId": {},
          "NextToken": {},
          "Limit": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "SchemaExtensionsInfo": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "DirectoryId": {},
                "SchemaExtensionId": {},
                "Description": {},
                "SchemaExtensionStatus": {},
                "SchemaExtensionStatusReason": {},
                "StartDateTime": {
                  "type": "timestamp"
                },
                "EndDateTime": {
                  "type": "timestamp"
                }
              }
            }
          },
          "NextToken": {}
        }
      }
    },
    "ListTagsForResource": {
      "input": {
        "type": "structure",
        "required": [
          "ResourceId"
        ],
        "members": {
          "ResourceId": {},
          "NextToken": {},
          "Limit": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Tags": {
            "shape": "Sb"
          },
          "NextToken": {}
        }
      }
    },
    "RegisterEventTopic": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId",
          "TopicName"
        ],
        "members": {
          "DirectoryId": {},
          "TopicName": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "RemoveIpRoutes": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId",
          "CidrIps"
        ],
        "members": {
          "DirectoryId": {},
          "CidrIps": {
            "type": "list",
            "member": {}
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "RemoveTagsFromResource": {
      "input": {
        "type": "structure",
        "required": [
          "ResourceId",
          "TagKeys"
        ],
        "members": {
          "ResourceId": {},
          "TagKeys": {
            "type": "list",
            "member": {}
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "RestoreFromSnapshot": {
      "input": {
        "type": "structure",
        "required": [
          "SnapshotId"
        ],
        "members": {
          "SnapshotId": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "StartSchemaExtension": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId",
          "CreateSnapshotBeforeSchemaExtension",
          "LdifContent",
          "Description"
        ],
        "members": {
          "DirectoryId": {},
          "CreateSnapshotBeforeSchemaExtension": {
            "type": "boolean"
          },
          "LdifContent": {},
          "Description": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "SchemaExtensionId": {}
        }
      }
    },
    "UpdateConditionalForwarder": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId",
          "RemoteDomainName",
          "DnsIpAddrs"
        ],
        "members": {
          "DirectoryId": {},
          "RemoteDomainName": {},
          "DnsIpAddrs": {
            "shape": "Ss"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "UpdateRadius": {
      "input": {
        "type": "structure",
        "required": [
          "DirectoryId",
          "RadiusSettings"
        ],
        "members": {
          "DirectoryId": {},
          "RadiusSettings": {
            "shape": "S2t"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "VerifyTrust": {
      "input": {
        "type": "structure",
        "required": [
          "TrustId"
        ],
        "members": {
          "TrustId": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "TrustId": {}
        }
      }
    }
  },
  "shapes": {
    "Sb": {
      "type": "list",
      "member": {
        "type": "structure",
        "required": [
          "Key",
          "Value"
        ],
        "members": {
          "Key": {},
          "Value": {}
        }
      }
    },
    "Sm": {
      "type": "string",
      "sensitive": true
    },
    "Sq": {
      "type": "list",
      "member": {}
    },
    "Ss": {
      "type": "list",
      "member": {}
    },
    "S13": {
      "type": "list",
      "member": {
        "type": "structure",
        "members": {
          "Name": {},
          "Value": {}
        }
      }
    },
    "S1e": {
      "type": "string",
      "sensitive": true
    },
    "S1f": {
      "type": "structure",
      "required": [
        "VpcId",
        "SubnetIds"
      ],
      "members": {
        "VpcId": {},
        "SubnetIds": {
          "shape": "Sq"
        }
      }
    },
    "S2p": {
      "type": "list",
      "member": {}
    },
    "S2t": {
      "type": "structure",
      "members": {
        "RadiusServers": {
          "type": "list",
          "member": {}
        },
        "RadiusPort": {
          "type": "integer"
        },
        "RadiusTimeout": {
          "type": "integer"
        },
        "RadiusRetries": {
          "type": "integer"
        },
        "SharedSecret": {
          "type": "string",
          "sensitive": true
        },
        "AuthenticationProtocol": {},
        "DisplayLabel": {},
        "UseSameUsername": {
          "type": "boolean"
        }
      }
    }
  }
}