---
title: "POST /v2/create-service"
method: POST
path: "/v2/create-service"
---

# POST /v2/create-service

`POST /v2/create-service`

Creates a service.

## Request body

- object
  - `name` string, required — Resource name (used in ARN — no spaces allowed).
  - `description` string — Resource description for services and policies.
  - `associatedSystems` AssociatedSystem[] — The systems to associate with the service.
    - `systemArn` string, required — ARN identifier.
    - `systemName` string — Resource name (used in ARN — no spaces allowed).
    - `userJourneyIds` UserJourneyId[] — The list of user journey identifiers that associate this system with the service.
  - `policyArn` string — ARN identifier.
  - `regions` AwsRegion[], required — The AWS Regions where the service operates.
  - `permissionModel` object, required — Defines the permission model for a service.
    - `invokerRoleName` string — IAM role name (supports up to 64 characters per IAM limits).
    - `crossAccountRoles` CrossAccountRole[] — The list of cross-account IAM role ARNs.
      - `crossAccountRoleArn` string, required — ARN of the IAM Role for the profile. Null if the permission profile is the 'Admin' profile.
      - `externalId` string — The external ID used for assuming the cross-account role.
  - `dependencyDiscovery` 'ENABLED' | 'DISABLED' — Caller-settable values for dependency discovery. INITIALIZING is system-managed.
  - `reportConfiguration` object — Configuration for automatic report generation on a Service.
    - `reportOutputs` ReportOutputConfiguration[] — Output destinations for generated reports.
      - `s3` S3ReportOutputConfiguration — S3 configuration for report output.
        - `bucketPath` string, required — S3 bucket path where reports will be written (e.g., my-bucket/ngrh-reports/).
        - `bucketOwner` string, required — Account ID of the bucket owner for cross-account access verification.
  - `kmsKeyId` string — KMS key identifier — accepts key ID, key ARN, alias name, or alias ARN.
  - `tags` object — Resource tags.
  - `clientToken` string — Idempotency token.

## Response `200`

Success

- CreateServiceResponse
  - `service` object, required — The created service.
    - `serviceArn` string, required — ARN identifier.
    - `name` string, required — Resource name (used in ARN — no spaces allowed).
    - `description` string — Resource description for services and policies.
    - `associatedSystems` AssociatedSystem[] — The systems associated with the service.
      - `systemArn` string, required — ARN identifier.
      - `systemName` string — Resource name (used in ARN — no spaces allowed).
      - `userJourneyIds` UserJourneyId[] — The list of user journey identifiers that associate this system with the service.
    - `policyArn` string — ARN identifier.
    - `regions` AwsRegion[] — The AWS Regions where the service operates.
    - `permissionModel` object — The permission model for the service.
      - `invokerRoleName` string, required — IAM role name (supports up to 64 characters per IAM limits).
      - `crossAccountRoles` CrossAccountRole[] — The list of cross-account IAM role ARNs.
        - `crossAccountRoleArn` string, required — ARN of the IAM Role for the profile. Null if the permission profile is the 'Admin' profile.
        - `externalId` string — The external ID used for assuming the cross-account role.
    - `dependencyDiscovery` object — The dependency discovery configuration for the service.
      - `status` 'ENABLED' | 'INITIALIZING' | 'DISABLED', required — The current status of dependency discovery.
      - `updatedAt` string, date-time — The timestamp when dependency discovery was last updated.
      - `eligibleResourceCount` integer — The count of resources eligible for dependency attribution.
      - `message` string — A status message for dependency discovery, displayed during the initialization state.
    - `effectivePolicyValues` object — The effective policy values for the service.
      - `availabilitySlo` object — The effective availability SLO value for the service.
        - `value` number, double — The availability SLO percentage value.
        - `policyName` string — Resource name (used in ARN — no spaces allowed).
        - `source` 'SELF' | 'CROSS_ACCOUNT' — Indicates whether the value comes from the service's own account or a cross-account policy.
      - `multiAzRto` object — The effective multi-AZ RTO value for the service, in minutes.
        - `value` integer — The RTO or RPO value in minutes.
        - `policyName` string — Resource name (used in ARN — no spaces allowed).
        - `source` 'SELF' | 'CROSS_ACCOUNT' — Indicates whether the value comes from the service's own account or a cross-account policy.
      - `multiAzRpo` object — The effective multi-AZ RPO value for the service, in minutes.
        - `value` integer — The RTO or RPO value in minutes.
        - `policyName` string — Resource name (used in ARN — no spaces allowed).
        - `source` 'SELF' | 'CROSS_ACCOUNT' — Indicates whether the value comes from the service's own account or a cross-account policy.
      - `multiAzDrApproach` object — The effective multi-AZ disaster recovery approach for the service.
        - `value` string — The disaster recovery approach value.
        - `policyName` string — Resource name (used in ARN — no spaces allowed).
        - `source` 'SELF' | 'CROSS_ACCOUNT' — Indicates whether the value comes from the service's own account or a cross-account policy.
      - `multiRegionRto` object — The effective multi-Region RTO value for the service, in minutes.
        - `value` integer — The RTO or RPO value in minutes.
        - `policyName` string — Resource name (used in ARN — no spaces allowed).
        - `source` 'SELF' | 'CROSS_ACCOUNT' — Indicates whether the value comes from the service's own account or a cross-account policy.
      - `multiRegionRpo` object — The effective multi-Region RPO value for the service, in minutes.
        - `value` integer — The RTO or RPO value in minutes.
        - `policyName` string — Resource name (used in ARN — no spaces allowed).
        - `source` 'SELF' | 'CROSS_ACCOUNT' — Indicates whether the value comes from the service's own account or a cross-account policy.
      - `multiRegionDrApproach` object — The effective multi-Region disaster recovery approach for the service.
        - `value` string — The disaster recovery approach value.
        - `policyName` string — Resource name (used in ARN — no spaces allowed).
        - `source` 'SELF' | 'CROSS_ACCOUNT' — Indicates whether the value comes from the service's own account or a cross-account policy.
      - `dataRecoveryTimeBetweenBackups` object — The effective data recovery time between backups value for the service.
        - `value` integer — The RTO or RPO value in minutes.
        - `policyName` string — Resource name (used in ARN — no spaces allowed).
        - `source` 'SELF' | 'CROSS_ACCOUNT' — Indicates whether the value comes from the service's own account or a cross-account policy.
    - `achievability` object — The achievability status of the service's resilience targets.
      - `availabilitySlo` 'ACHIEVABLE' | 'NOT_ACHIEVABLE' — The achievability status of the availability SLO target for the service.
      - `multiAzRtoRpo` 'ACHIEVABLE' | 'NOT_ACHIEVABLE' — The achievability status of the multi-AZ RTO and RPO targets for the service.
      - `multiRegionRtoRpo` 'ACHIEVABLE' | 'NOT_ACHIEVABLE' — The achievability status of the multi-Region RTO and RPO targets for the service.
      - `dataRecoveryTimeBetweenBackups` 'ACHIEVABLE' | 'NOT_ACHIEVABLE' — The achievability status of the data recovery time between backups for the service.
    - `reportConfiguration` ServiceReportConfiguration — Configuration for automatic report generation on a Service.
      - `reportOutputs` ReportOutputConfiguration[], required — Output destinations for generated reports.
        - `s3` S3ReportOutputConfiguration — S3 configuration for report output.
          - `bucketPath` string, required — S3 bucket path where reports will be written (e.g., my-bucket/ngrh-reports/).
          - `bucketOwner` string, required — Account ID of the bucket owner for cross-account access verification.
    - `kmsKeyId` string — KMS key identifier — accepts key ID, key ARN, alias name, or alias ARN.
    - `tags` TagMap — Resource tags.
    - `estimatedAssessmentCost` object — The estimated cost of running an assessment on the service.
      - `amount` number, double — The cost amount for the assessment.
      - `currency` 'USD' — The currency of the assessment cost.
    - `resourceDiscovery` object — The resource discovery status for the service.
      - `status` 'RUNNING' | 'SUCCEEDED' | 'FAILED' | 'COMPLETED_WITH_FAILURES' | 'NOT_STARTED' — The current status of resource discovery.
      - `lastRunAt` string, date-time — The timestamp of the last resource discovery run.
      - `errorCode` 'INVALID_PERMISSIONS' | 'STACK_NOT_FOUND' | 'CLUSTER_NOT_FOUND' | 'STATE_FILE_NOT_FOUND' | 'ACCESS_DENIED' | 'UNSUPPORTED_CLUSTER' | 'INTERNAL_ERROR' — The error code if resource discovery failed.
      - `errorMessage` string — A message describing the error if resource discovery failed.
    - `assessmentStatus` 'NOT_STARTED' | 'PENDING' | 'IN_PROGRESS' | 'FAILED' | 'SUCCESS' — The current assessment status of the service.
    - `rerunAssessment` boolean — Indicates whether the assessment should be rerun.
    - `openFindingsCount` integer — The number of open findings for the service.
    - `resolvedFindingsCount` integer — The number of resolved findings for the service.
    - `organizationId` string — The AWS Organizations identifier for the service.
    - `ouId` string — The organizational unit (OU) identifier for the service.
    - `accountId` string — The AWS account ID that owns the service.
    - `createdAt` string, date-time — The timestamp when the service was created.
    - `updatedAt` string, date-time — The timestamp when the service was last updated.

## Other responses

- `480` — InternalServerException
- `481` — ResourceNotFoundException
- `482` — ValidationException
- `483` — ConflictException
- `484` — ServiceQuotaExceededException
- `485` — AccessDeniedException

---

[API](https://skmtc.net/aws/apis/resiliencehubv2.md) · [All operations](https://skmtc.net/aws/apis/resiliencehubv2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/aws/resiliencehubv2/versions/27331d252935/schema)
