updateVirtualRouter method

Future<UpdateVirtualRouterOutput> updateVirtualRouter({
  1. required String meshName,
  2. required VirtualRouterSpec spec,
  3. required String virtualRouterName,
  4. String? clientToken,
})

Updates an existing virtual router in a specified service mesh.

May throw BadRequestException. May throw ConflictException. May throw ForbiddenException. May throw InternalServerErrorException. May throw LimitExceededException. May throw NotFoundException. May throw ServiceUnavailableException. May throw TooManyRequestsException.

Parameter meshName : The name of the service mesh in which the virtual router resides.

Parameter spec : The new virtual router specification to apply. This overwrites the existing data.

Parameter virtualRouterName : The name of the virtual router to update.

Parameter clientToken : Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.

Implementation

Future<UpdateVirtualRouterOutput> updateVirtualRouter({
  required String meshName,
  required VirtualRouterSpec spec,
  required String virtualRouterName,
  String? clientToken,
}) async {
  ArgumentError.checkNotNull(meshName, 'meshName');
  _s.validateStringLength(
    'meshName',
    meshName,
    1,
    255,
    isRequired: true,
  );
  ArgumentError.checkNotNull(spec, 'spec');
  ArgumentError.checkNotNull(virtualRouterName, 'virtualRouterName');
  _s.validateStringLength(
    'virtualRouterName',
    virtualRouterName,
    1,
    255,
    isRequired: true,
  );
  final $payload = <String, dynamic>{
    'spec': spec,
    'clientToken': clientToken ?? _s.generateIdempotencyToken(),
  };
  final response = await _protocol.sendRaw(
    payload: $payload,
    method: 'PUT',
    requestUri:
        '/meshes/${Uri.encodeComponent(meshName)}/virtualRouters/${Uri.encodeComponent(virtualRouterName)}',
    exceptionFnMap: _exceptionFns,
  );
  final $json = await _s.jsonFromResponse(response);
  return UpdateVirtualRouterOutput(
    virtualRouter: VirtualRouterData.fromJson($json),
  );
}