Cloud API Developer Guide
Cloud API developer guide
Endpoint architecture
CRUD endpoint architecture
Modifying configuration files
Schema config file syntax
Schema file syntax
Mapping file syntax
Updater file syntax
Extension files
Swagger and apiconfig files
Cloud API integration graphs
Filtering the quote_graph
Troubleshooting configuration
Adding resource properties
Adding scalar properties
Configuring the schema extension file
Configuring the mapping extension file
Configuring the updater extension file
Compound datatype properties
The schema extension file
The mapping extension file
The updater extension file
Foreign key properties
Foreign key config tools
The SimpleReference schema
The ResourceReference mapper
Value resolvers
The URI mapping
Foreign key config files
The schema extension file
The mapping extension file
The updater extension file
The shared apiconfig file
Updaters: no common ancestor
Complete code sample: no common ancestor
Updaters: common ancestor
Complete code sample: common ancestor
Updaters: conditional access
Complete code sample: conditional access
Updaters: complex resolution
Adding one-to-one properties
Cloud API one-to-one example
One-to-one schema files
Schema extension file
Mapping extension file
Updater extension file
Reserving IDs and checksums
Configuring ID and checksum behaviors
One-to-ones in responses
One-to-one code sample
Tutorials: Adding properties
Tutorial: Schema with scalars
Tutorial: Compound datatypes
Modifying endpoint behaviors
Collection-level behaviors
Read-only properties
Database-required properties
Create-only properties
Sortable properties
Filterable properties
Excluding properties
Excluding APD rules
Property metadata
Obfuscating response data
Nullifying Cloud API response data
Masking Cloud API response data
Unmasking Cloud API base configuration tax IDs
Masking PII data in the Cloud API diffTree
Localizing Cloud API schemas
Localized text architecture
Display keys for API elements
Localization key prefixes
schema.json display keys
swagger.yaml display keys
Locale-specific content
Adding localized text for existing API elements
Adding localized text for new API elements
Adding a new locale
Localized properties
Enabling localized properties
Configuring localized properties
Processing localized properties
Extension endpoints
REST endpoint generator
Generating endpoints for custom entities
Architecture of generated CRUD endpoints
REST endpoint generator restrictions
Process for generating CRUD endpoints for an entity
Special use cases for endpoint generation
Running the generator
Pre-run decisions
Choosing the API for generated endpoints
Choosing the parent of the custom resource
Populating collections with streams or queries
Additional pre-run decisions
Starting the generator
Running the REST endpoint generator from Studio
Create a run configuration for the REST endpoint generator
Use the run configuration
Running the REST endpoint generator from the command prompt
Generator prompts
Generator completion output
Completing configuration
Resource definition files
Overview of definition files
Schema file configuration
Overview of schema file syntax
Generated schema file modifications
Mapping file configuration
Overview of mapping file syntax
Generated mapping file modifications
Updater file configuration
Overview of updater file syntax
Generated updater file modifications
Swagger file configuration
Overview of swagger file syntax
Generated swagger file modifications
Completing configuration
Glue and impl configuration
Glue and impl classes
Configuring the apiconfig file
Configuring the element resource file
Configuring the collection resource file
Completing configuration
Authorization configuration
Endpoint access
Code generated in role.yaml files
Configuring code in role.yaml files
Resource access
Code generated in access.yaml files
Generated resource access code for internal users
Generated resource access code for external users
Generated resource access code for services
Generated resource access code for special use cases
Configuring generated resource access code
Completing configuration
Endpoint considerations
Cloud API integration graphs
The graph schema file
The graph mapper file
Mapping in the apiconfig file
Marking graph properties as eventSafe
Base config entity endpoints
Supertype entity endpoints
Shared handling
Separate handling
Policy descendant entities
Root resource endpoints
Root resource endpoints in Cloud API
Generating root resource endpoints
Configuring root resource endpoints
Root resource endpoint restrictions
Policy descendant endpoints
Policy descendant resources
Data model requirements
Generator prompts
Generated files
Endpoint configuration
Incidents and risk units
Implementation overview
Incidents and risk units
Cloud API incidents
Cloud API risk units
Cloud API damageables
Data model designs
Implementing custom endpoints
Data model design
Design without damageables
Cloud API custom incident entity without damageables
Cloud API custom risk unit entity without damageables
Design with damageables
Cloud API custom incident entity with damageables
Cloud API custom risk unit entity with damageables
Cloud API damageable entity
Incident endpoint generation
Generator prompt differences
Generated file differences
Risk unit endpoint generation
Generator prompt differences
Generated file differences
Config without a damageable
Risk unit value resolver
Custom risk unit value resolver syntax
Custom risk unit value resolver example
Schema extension file
Mapping extension file
Updater extension file
Complete config example
Post-schema configuration
Additional configuration for incident endpoints
Additional configuration for risk unit endpoints
Config with a damageable
Damageable value resolver
Custom damageable value resolver syntax
Custom damageable value resolver example
Schema extension file
Mapping extension file
Updater extension file
Post-schema configuration
Additional configuration for incident endpoints
Additional configuration for risk unit endpoints
LOB-specific endpoints
Products and lines of business
Product sources
LOB artifacts
Visualized and installed products
APD-native LOB endpoints
Non-APD-native LOB endpoints
Cloud Retrofit required files
Template gen config YAML
File names and locations
The languages property
The lineCode property
The monoLineProductCode property
The types property
Other type fields
The types property fields
Define template gen config
Generate template gen config
Template gen config XML file
Cloud Retrofit with APD App
Cloud Retrofit without APD
Cloud Retrofit output files
PolicyContactRole retrofit
Handling fields that sync to AccountContactRole
Eff-dated entity retrofit
Product validation errors
Error information in the <ProductName> screen
Correcting "Short Name must be a valid name" errors
Correcting "naming conflict with an existing field" warnings
LOB endpoint files
LOB endpoint compile errors
Regenerating LOB endpoints
Regenerate endpoints by first removing the template
Regenerating endpoints by removing generated files
Toggling endpoint versions
Selecting the active endpoint set
Toggle a product's active endpoints in the UI
Determining which set of endpoints is active
Products and templates
Export a product template from an installed product
Export a product template from a visualized product
Disable a visualized product's endpoints
Remove a visualized product
Disable an installed product's endpoints
Removing an installed product's endpoints
Special LOB endpoint cases
Generating endpoints for pre-Hakuba products
Generating endpoints for scheduled items in SBT products
Generating endpoints for multi-line products
Personal Auto endpoints
Configuring the base Personal Auto product for Cloud API
Cloud API composite request example for Personal Auto
Cloud API codegen config files
File locations and naming
Config file syntax
Cloud API codegen types property
Cloud API codegen type-level overrides
Cloud API codegen field-level overrides
Cloud API codegen overrides for APD Other field type
Cloud API codegen wizardStepIds property
Cloud API codegen costExtensions property
Cloud API codegen config file example
Product template endpoints
Querying visualized products
Importing products
Import Cloud API XML templates and mind maps using Postman
Generating installed products
Toggling product endpoints
Determining which Cloud API endpoints are active
Activating product editions
Removing visualized products
Specific use cases
Batch processes
Configuring custom batch process arguments
Configuring the BatchProcessArguments schema
Configuring the BatchProcessExtResource class
Address locales
Properties in the Address schema
Properties in the addresses.i18n.yaml file
Address locale configuration tasks
Extending claim search
Financial calculations
FinancialCalculations collection resource
Graph-based policy retrieval
Policy retrieval overview
Plugin architecture without graph-based retrieval
Plugin architecture with graph-based retrieval
Implementing graph retrieval
getPolicyGraph return value
Graph-based policy refresh
Policy refresh and the IPolicySearchAdapter
Policy refresh scenarios (without search)
Policy refresh scenarios (with search)
Implementing graph refresh
REST preload requests
Defining preload requests
Preload request behavior
Job type configuration
Configure resources, actions, and properties for job types
Cloud API local filesystem
Creating deletable temporary files
Choosing an auth flow
Overview of authentication
Caller types
Auth architecture
Cloud API access types
Authentication methods
Constructing JWTs
Auth failure errors
Auth developer tasks
Selecting an auth flow
Available auth flows
Evaluating auth flows
Choosing an OAuth flow
Session user assignment
Authorization value sources
Resource access enforcement
Resource access ID types
Cloud API auth flow comparison
Additional auth flows
Cloud API authentication flows
Cloud API basic authentication
Overview of basic auth
Credentials for basic authentication
Authorization for basic authentication
Request headers for basic authentication
Basic auth example flow
Basic auth environments
Disable basic auth in development environments
Basic auth checklist
Sending basic auth calls
Send a Postman call with basic authentication
Internal user OAuth2 flow
Overview of internal auth
Credentials for internal users
Authorization for internal users
JWTs for internal users
Logging for internal users
Internal user example flow
Internal user auth checklist
Sending internal user calls
External user authentication
Overview of external user auth
Credential verification
Authorization controls
JWTs for external users
Authentication logging
ClaimCenter example flow
PolicyCenter example flow
BillingCenter example flow
External user checklist
Sending external user calls
Anonymous user authentication
Overview of anonymous auth
Credential requirements
Authorization controls
JWT token claims
Anonymous user auth flow
Anonymous user checklist
Unauthenticated user accounts
Recovering submissions
Sending anonymous user calls
Standalone service auth
Service auth options
Overview of standalone auth
Credential verification
Authorization controls
JWTs for standalone services
Authentication logging
Standalone service flow
Standalone service checklist
Sending standalone calls
Services with user context
Auth options for services
Overview: service user context
Service credentials
Service authorization
JWTs for services with user context
Service call logging
Auth flow: user context
Checklist: user context
Sending calls: user context
Service account mapping
Auth options for services
Overview: account mapping
Service credentials
Service authorization
JWTs for services with service account mapping
Mapping services to service accounts
Service call logging
Auth flow: account mapping
Checklist: account mapping
Sending calls: account mapping
Unauthenticated callers
Overview: unauthenticated callers
Caller credentials
Caller authorization
JWTs for unauthenticated callers
Caller logging
Auth flow: unauthenticated callers
Checklist: unauthenticated callers
Implementing authentication
Bearer token authentication
Asymmetric encryption
Enable asymmetric encryption
Deployment information
Configuring the IdP
Configure the IdP for internal users
Configure the IdP for external users
Registering with Guidewire Hub
Register an application with Guidewire Hub
Authorization configuration
Cloud API endpoint access
Cloud API role files
API role names
API role orbits
API role endpoints
API role accessible fields
API role special permissions
API role example
Assigning roles to callers
Assigning API roles to internal users
Assigning API roles to external users
Assigning API roles to standalone services
Assigning API roles to services with user context
Assigning API roles to services with service account mapping
Assigning API roles to other types of callers
Cloud API reserved roles
Designing Cloud API role files
Configuring Cloud API roles
Create an API role file
Modify an API role file
Roles and lookup performance
Roles and localization
Cloud API resource access
Resource access strategies
Specific strategies
The contactAuthorizationIds strategy
The producerCodes strategy in ClaimCenter
The producerCodes strategy in BillingCenter
The producerCodes strategy in PolicyCenter
The policyNumbers strategy
The service strategy
Resource access files
Resource access file sections
Permissions section
Filters section
Accessible fields filters
CC third-party data filtering
Access types
Data access architecture
contactAuthorizationIds access
Behaviors for each resource type
producerCodes access
Behaviors for each resource type
Configuring data access
Configuring access to base configuration entities
Configuring access for custom entities
Sorting and filtering on accessible fields
Filtering fields in a POST
Restricting access to service requests based on their services
BC third-party data filtering
Contact auth ID access
External user types
Access by user type
contactAuthorizationIds access
The getRestContactAuth... methods
The IRestContactAuthorizationPlugin plugin
The accessiblefields.yaml files
Example logic flow for determining access
Producer codes access
Determining resource access
Access by resource
producerCodes access
The getRestProducerCodeAuth… methods
The IRestProducerCodeAuthorizationPlugin plugin
The RestV1ExternalProducerCodeAuthHelperPlugin
The accessiblefields.yaml files
Example logic flow for determining access
Configuring data access
Configuring contact authorization IDs
Configuring access to base configuration entities
Configuring access for custom entities
Sorting and filtering on accessible fields
Filtering fields in a POST
Cloud API proxy user access
Proxy users
Proxy user information usage
Configuring proxy users
IExpandTokenPlugin
Implementing the IExpandTokenPlugin
Creating the implementation class
Register the plugin
Job type access
Provide account holders access to additional job types
Contact authorization IDs
Assigning contact authorization IDs
Contact authorization ID assignment scenarios
Configuring contact authorization ID assignment
Security levels
Anonymous job recovery
/recover-new-jobs endpoint
Define search criteria properties
Define the query logic
Extend the RecoverNewJobsRequestAttributes schema
Calling /recover-new-jobs
Job recovery behavior
Financial calculations access
Overview of access restrictions
Granting access to financial expressions
Defining filter access
Base configuration restrictions
Cross-application calls
Troubleshooting auth issues
Examples of auth errors in the log
Find out why a call failed using correlation IDs
Proxy users are not present in the database
ContactManager authentication
ContactManager authentication
Supported caller types
Resource access for ContactManager
Tag-based access to contacts