def build(self):
if ((self.allowMethods is None or len(self.allowMethods) == <NUM_LIT:0>) and<EOL>(self.denyMethods is None or len(self.denyMethods) == <NUM_LIT:0>)):<EOL><INDENT>raise NameError('<STR_LIT>')<EOL><DEDENT>policy = {<EOL>'<STR_LIT>': self.principalId,<EOL>'<STR_LIT>': {<EOL>'<STR_LIT>': self.version,<EOL>'<STR_LIT>': []<EOL>}<EOL>}<EOL>policy['<STR_LIT>']['<STR_LIT>'].extend(self._getStatementForEffect('<STR_LIT>', self.allowMethods))<EOL>policy['<STR_LIT>']['<STR_LIT>'].extend(self._getStatementForEffect('<STR_LIT>', self.denyMethods))<EOL>return policy<EOL>
Generates the policy document based on the internal lists of allowed and denied
        conditions. This will generate a policy with two main statements for the effect:
        one statement for Allow and one statement for Deny.
        Methods that includes conditions will have their own statement in the policy.