in src/org_setup/resources/organizations.py [0:0]
def get_ai_optout_policy(self) -> str:
"""
Return the AI opt-out policy ID
"""
for policy in self.list_policies("AISERVICES_OPT_OUT_POLICY"):
if policy["Name"] == AI_OPT_OUT_POLICY_NAME:
logger.info(
f"[{self.region}] Found existing {AI_OPT_OUT_POLICY_NAME} policy"
)
return policy["Id"]
logger.info(
f"[{self.region}] {AI_OPT_OUT_POLICY_NAME} policy not found, creating"
)
try:
response = self.client.create_policy(
Content=json.dumps(AI_OPT_OUT_POLICY),
Description="Opt-out of all AI services",
Name=AI_OPT_OUT_POLICY_NAME,
Type="AISERVICES_OPT_OUT_POLICY",
)
policy_id = response.get("Policy", {}).get("PolicySummary", {}).get("Id")
logger.debug(
f"[{self.region}] Created policy {AI_OPT_OUT_POLICY_NAME} ({policy_id})"
)
except botocore.exceptions.ClientError as error:
if error.response["Error"]["Code"] == "DuplicatePolicyException":
return self.get_ai_optout_policy()
raise error
return policy_id